Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.03.2020 14:32:57

Laravel Gates And Politics

У меня есть такой Gate который проверяет есть ли этот пользователь или удален.

Gate::define('login',function($user){
            if($user->status == 1) {
                return true;
            }
            return false;
        });

а вот тут я проверяю его когда пользователь хочет залогиниться

 $user = User::where('email',$request->get("email"))->first();
if(Gate::allows('login',$user)) {
            if (Auth::attempt([
                'email' => $request->get('email'),
                'password' => $request->get('password'),
            ])) {

                return redirect('/');
            } else {
                return redirect()->back()->with('error', 'Incorrect Login or Password');
            }
        }
        return redirect()->back()->with('error','No Such User');
        }

у меня всегда выдается последний Error что такого пользователя нет. то есть Gate - не работает.

что не так у меня?

Не в сети

#2 06.03.2020 17:25:32

Re: Laravel Gates And Politics

Логично предположить, что $user->status не равен 1 для этого пользователя smile Надо проверять в отладчике.
Кстати, ты не предусмотрел случай, когда пользователь вообще не найден. Система не должна вываливаться с ошибкой при неправильном email.

Изменено artoodetoo (06.03.2020 17:27:58)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 07.03.2020 11:11:23

Re: Laravel Gates And Politics

у пользователя статус был 1,проблема была в том что Gate хотел проверить уже Auth::user() ,поэтому и выдавал ошибку так как не мог найти этого user-а,
решением был просто перед Gate-ом залогинить пользователя патом уж проверять его:
спс за ответ!)

Не в сети

Подвал раздела