Как я могу передать ИЛИ в методе Auth :: попытки? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть проект Laravel, и я хочу разрешить пользователям входить в систему, используя имя пользователя или электронную почту, но я не нашел способа передать или условие в методе Auth :: try ().

Я использовалкод ниже для входа только по электронной почте,

Auth::attempt(['email' => request('email'), 'password' => request('password')])

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Вы можете проверить с условием проверки электронной почты проверки

Пример:

$field = filter_var($request->email, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';

if (Auth::attempt([$field => $request->email, 'password' => $request->password], true)) {
    // ...
}

Подробнее о FILTER_VALIDATE_EMAIL можно узнать здесь

0 голосов
/ 22 ноября 2018

Если первая попытка не удалась, сделайте еще одну попытку для имени пользователя:

if (Auth::attempt(['email' => request('email'), 'password' => request('password')])
 || Auth::attempt(['username' => request('email'), 'password' => request('password')]))
{
   // Login success..
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...