Метод username()
в LoginController ссылается на имя пользователя имя поля , отправленное по запросу.В вашем случае я бы предположил, что имя поля такое же, но что меняется, так это то, используете ли вы это поле, чтобы найти адрес электронной почты или имя пользователя.В этом случае у вас должна быть возможность «обмануть» провайдера пользователя, чтобы сделать это, переопределив метод credentials
в вашем LoginController (и не переопределяя функцию username
):
protected function credentials(Request $request)
{
$v = \Validator::make($request->only($this->username()), [
$this->username() => "email"
]);
if ($v->passes()) {
return [
"email" => $request->input($this->username()),
"password" => $request->input("password")
];
} else {
return [
"username" => $request->input($this->username()),
"password" => $request->input("password")
];
}
}
Thisбудет передано провайдеру пользователя, который выберет пользователя либо по столбцу email
, либо по столбцу username
в зависимости от того, что передано.