Я пытаюсь написать промежуточное программное обеспечение в Laravel 5, которое будет проверять, есть ли у пользователя подписка, и не отменяется ли она. Если он не существует или отменен, то они будут заблокированы на одной странице (биллинг). Проблема, я в конечном итоге в цикле перенаправления. Я понимаю почему, но я просто не могу понять, что делать правильно. заранее спасибо
public function handle($request, Closure $next)
{if (\Auth::check())
{
// if subscription does not exist
if (\Auth::user()->hospital->subscription == null || \Auth::user()->hospital->subscription !== 'Active') {
return redirect('billing');
}
}
return $next($request);
}
Проблема, я в конечном итоге в цикле перенаправления.
Похоже, вы применяете промежуточное ПО во всем приложении, включая страницу оплаты. Таким образом, вам нужно указать, где должен рассматриваться класс промежуточного программного обеспечения, это может быть достигнуто в /app/Http/kernel.php
,
Кроме того, вы можете сделать дополнительную проверку на ваших промежуточных классах, таких как:
// billing (http://example.com/billing)
$path = $request->path();
if ($path !== 'billing')
{
if (\Auth::check())
{
// if subscription does not exist
if (\Auth::user()->hospital->subscription == null || \Auth::user()->hospital->subscription !== 'Active') {
return redirect('billing');
}
}
}
return $next($request);
Других решений пока нет …