2017-02-01 1 views
0

Я работаю в приложении Laravel 5.2. Я выполнял модуль аутентификации. Дело в том, что у меня нет столбца с именем электронной почты, вместо этого у меня есть столбец , потому что я не использую таблицу пользователя по умолчанию для модуля. Итак, теперь регистрирующий, Loging и выход из системы работают правильно, потому что в AuthController я установил:изменение используемая колонка в сбросе Пароль

protected $username = 'mail'; 

Но, с другой стороны, ResetPassword не работает, потому что все еще ищет email колонки и это дает мне эту ошибку:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'where clause' (SQL: select * from `users` where `email` = [email protected] limit 1 

Я не хочу, что он сравнивает email, вместо этого мне нужно mail

+0

Попробуйте переопределить функцию 'loginUsername()' on 'https: // github.com/laravel/framework/blob/5.2/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php # L141' by' return property_exists ($ this, 'username')? $ this-> имя пользователя: 'mail'; ' – Troyer

ответ

0

Settingup getEmailForPasswordReset() метода на пользователе модель как:

public function getEmailForPasswordReset() { 
    //Place you reset code here... 
} 

REF: change User email field to username field with Laravel 5.0?

Вы также должны Override `postLogin()» в противном случае по умолчанию системы проверки подлинности не будет соответствовать учетным данным.

Смежные вопросы