Я работаю с Laravel впервые, я пытаюсь войти в систему, в зависимости от того, введет ли пользователь адрес электронной почты или псевдоним в том же вводе. База данных содержит, помимо прочего, 2 таблицы: одну Users
с полем электронной почты и другую Profile
с ником и идентификатором, который является внешним ключом от Users
, во входном окне вводятся по мере поступления. с изменением ввода электронной почты только с типа email на текст, чтобы пользователь мог ввести либо адрес электронной почты, либо псевдоним, затем я попробовал разные способы, последнее, что я попробовал, - это включение провайдера в аутентификацию. php вот так :
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'profiles' => [
'driver' => 'session',
'provider' => 'profiles',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
затем я попытался переопределить попыткуLogin в LoginController следующим образом:
public function attemptLogin(Request $request)
{
if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password])) {
$details = Auth::guard('web')->user();
$user = $details['original'];
return $user;
} else {
return 'auth with email failed';
}
if (Auth::guard('profiles')->attempt(['nick' => $request->email, 'password' => $request->password])) {
$details = Auth::guard('profiles')->user();
$user = $details['original'];
return $user;
} else {
return 'auth with nick failed';
}
}
Любая помощь очень ценится, так как я новичок в Laravel, и я вроде потерянная