2016-02-27 3 views
0

Это моя функция Войти в AuthenticatesUsers.phpLaravel 5,2 Предотвратить форма пользователь Войти, когда он заблокирован

public function postLogin(Request $request) 
    { 
     return $this->login($request); 


if (Auth::validate(['email' => $request->email, 'password' => $request->password, 'block' => 1])) { 
      return redirect("/")->withErrors('User blocked'); 
      } 

    } 

Я установил 1 в заблокированном поле в БД муравей еще давайте мне войти в систему. Можете ли вы сказать мне, почему?

+0

Вы изменяете файл 'AuthenticatesUsers.php' в' vendor/laravel/framework/src/Illuminate/Foundation/Auth'? – Bogdan

+0

Да, это правильно @Bogdan – hulkatron

+1

Все, что в каталоге 'vendor' должно быть ** выключено ** для редактирования, потому что если вы обновите Laravel, то эти изменения будут перезаписаны при обновлении. Поэтому, чтобы получить это право, чтобы я мог дать ответ, пытаетесь ли вы заблокировать пользователя при входе в систему, если в таблице 'users' установлен столбец' block', установленный в '1'? – Bogdan

ответ

0

Что вам нужно сделать, это переопределить метод getCredentials в признаке AuthenticatesUsers. Как указано в предыдущем комментарии, вы не хотите редактировать что-либо в каталоге vendor.

Пожалуйста, взгляните на this blog post, чтобы увидеть, как я сделал что-то подобное.

+0

Когда я это делаю: 'use Illuminate \ Foundation \ Auth \ AuthenticatesUsers { getCredentials as traitGetCredentials; } ' – hulkatron

+0

Я получаю это:' синтаксическая ошибка, неожиданная '{', ожидающая ',' или ';' ' – hulkatron

+0

такова, что внутри вашего класса? Похоже, вы положили его выше своего класса. Взгляните на полное решение в нижней части сообщения. –