Как сделать ogin в зависимости от того, введет ли пользователь ник или email Laravel? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть 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');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...