Laravel: промежуточное ПО проверяет, удален ли пользователь или нет - PullRequest
0 голосов
/ 29 января 2020

Я использую softdelete для пользователей, когда пользователь удаляется. При входе в систему или аутентификации все пользователи проходят аутентификацию. Итак, я сделал промежуточное программное обеспечение с именем:

isSoftdeletedorNot

    public function handle($request, Closure $next)
        {
            if ($request->user()->deleted_at == null) :
                return $next($request);
            else:
                Auth::logout();
                Session::flush();
                Session::regenerate();
                return redirect()->route('login')->withErrors(['suspended' => 'Your account is deactivated']);
            endif;
        }

Хорошо работает. Проблема в том, что перенаправленный маршрут показывает 404 error, и когда я вручную перефразирую sh, он снова работает.

1 Ответ

0 голосов
/ 29 января 2020

Попробуйте это

 public function handle($request, Closure $next)
    {
        if ($request->user()->deleted_at != null) {
            Auth::logout();
            Session::flush();
            Session::regenerate();
            return redirect()->route('login')->withErrors(['suspended' => 'Your account is deactivated']);
        }else{
            return $next($request);
        }
    }
...