аутентификация входа в laravel с использованием связанной таблицы

#laravel #authentication

#laravel #аутентификация

Вопрос:

У меня есть 2 таблицы с именами Users и User_info

Я хочу выполнить аутентификацию входа в систему с помощью электронной почты и мобильного

Электронная почта хранится в таблице Users, а мобильный телефон — в таблице User_info

Кто-нибудь может меня направить?

Ответ №1:

Вы можете попробовать вот так

  $credential = filter_var($request->login, FILTER_VALIDATE_EMAIL) ? 'email' : 'phone';
        $login = $request->login;
        if($credential == 'email'){
             User::where('email',$login)->first();
            //Some logic
        }else{
             User::whereHas('user_info',function($q) use ($login){
                       $q->where('mobile',$login);
                   })->first();
            //do some logic
        }
  

Комментарии:

1. Буду ли я помещать это в метод protected function credentials(Request $request) ?

2. Да, вы можете поместить это в функцию входа.

Ответ №2:

Сначала выполните поиск входного значения в таблице users. Если результат равен нулю, выполните поиск в таблице user_info.

Пример :

 if(count($user = AppUser::where('email',$request->email)->first()) > 0)
\Login Logics like Auth::LoginUsingId($user->id)
elseif(count($user = AppUserInfo::where('phone_number',$request->phone_number)->first()) > 0))
\Login Logics like Auth::LoginUsingId($user->id)