Как изменить старый адрес электронной почты в laravel на старый ник или старый адрес электронной почты? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть логин, в котором пользователь может ввести либо адрес электронной почты, либо ник, адрес электронной почты находится в таблице Users, а ник в таблице Profiles, поэтому, если пользователь вводит ник, он делает leftJoin из Profile в таблицу users и получает это письмо, которое отлично работает (хотя я знаю, что я не реализовал лучший способ). Затем, когда данные вводятся неверно, они возвращаются к форме входа в систему, но она показывает значение value="{{ old('email') }}", но я хотел бы показать электронную почту в случае, если пользователь ввел электронную почту или ник, если пользователь ввел ник. Вот как я изменил метод учетных данных из LoginController:

public function emailOrNick($request)
    {
        $input = request()->input('email');
        //What the above code does is to filter the HTTP request that comes in if there's an @ or if it's an email
        // by using FILTER_VALIDATE_EMAIL. If it's an email then return email, otherwise return username.
        $checker = filter_var($input, FILTER_VALIDATE_EMAIL) ? 'email' : 'nick';

        if ($checker === 'nick') {
            $nick = $request->email;
            $id_user = Profile::where('nick', $nick)->pluck('id_user')->first();
            $email = User::where('id', $id_user)->pluck('email')->first();
            $request['email'] = $email;
        } else if ($checker === 'email') {
            $request['email'] = $input;
        }
    }

 public function credentials(Request $request)
    {
        $this->userService->emailOrNick($request);
        return $request->only($this->username(), 'password');
    }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...