Несколько findForPassport?например, логин с именем пользователя и номером телефона - PullRequest
0 голосов
/ 26 мая 2019

Я пытался найти forPassport.Хорошо, если вместо поля по умолчанию есть только одно поле, но я хочу войти в систему с именем пользователя или номером телефона.

Для базового входа в систему я сделал

public function __construct()
    {
        $this->middleware('guest')->except('logout');

        $this->username = $this->findUsernameOrPhone();
    }

public function findUsernameOrPhone()
    {
        $login = request()->input('username');

        $fieldType = Str::startsWith($login, '07') ? 'phone' : 'username';

        request()->merge([$fieldType => $login]);

        return $fieldType;
    }

/**
     * Get phone property.
     *
     * @return string
     */
    public function phone()
    {
        return $this->username;
    }

    /**
     * Get username property.
     *
     * @return string
     */
    public function username()
    {
        return $this->username;
    }

1 Ответ

0 голосов
/ 26 мая 2019

Просто добавьте это в t = вашу пользовательскую модель. здесь $ username может быть именем пользователя или электронной почтой

public function findForPassport($username) {
        return $this->orWhere('username', $username)
        ->orWhere('email',$username)->first();
}
...