У меня есть 2 таблицы (пользователи и профили), где пользователи получают электронную почту от пользователя, а профили - нет. Я пытаюсь выполнить вход в зависимости от того, введет ли пользователь псевдоним или адрес электронной почты. Я переписал функцию учетных данных с Laravel auth, поэтому он проверяет, введен ли адрес электронной почты или псевдоним, а затем, если это просто адрес электронной почты, я просто передать его учетным данным, и если это псевдоним, я делаю запрос, чтобы найти письмо, которое идет с этим псевдонимом через левое соединение. Когда я вхожу с электронной почтой, все идет хорошо, но когда я пытаюсь сделать это с ником, он говорит мне "These credentials do not match our records."
, хотя то, что я получаю в dd, в обоих случаях это одно и то же (электронная почта). Вот функция:
public function credentials(Request $request)
{
$emailOrNick = "";
$input = request()->input('email');
$checker = filter_var($input, FILTER_VALIDATE_EMAIL) ? 'email' : 'nick';
if ($checker === 'email') {
$emailOrNick = $input;
// dd($emailOrNick);
return $request->only($emailOrNick, 'password');
} else if ($checker === 'nick') {
$emailOrNick = Profile::where('nick', '=', $input)->leftJoin('users', 'profiles.id_user', 'users.id')->get();
// dd($emailOrNick[0]->email);
return $request->only($emailOrNick[0]->email, 'password');
}
// return $request->only($emailOrNick, 'password');
}