我需要能够根据用户名而不是电子邮件地址重置用户密码。数据库确实存储了电子邮件地址,但用户可以拥有多个具有相同电子邮件地址的用户帐户。因此,用户名是重置密码的最佳唯一因素。
我当前的密码重置请求是:
switch (Password::remind(Input::only('email')))
{
case Password::INVALID_USER:
return Redirect::back()->with('error', Lang::get($reason));
case Password::REMINDER_SENT:
return Redirect::back()->with('status', Lang::get($reason));
}
我当前的重置功能是
$credentials = Input::only(
'username', 'password', 'password_confirmation', 'token'
);
$response = Password::reset($credentials, function($user, $password){
$user->password = Hash::make($password);
$user->save();
});
switch ($response){
case Password::INVALID_PASSWORD:
case Password::INVALID_TOKEN:
case Password::INVALID_USER:
return Redirect::back()->with('error', Lang::get($response));
case Password::PASSWORD_RESET:
return Redirect::to('/overview');
}
我知道更改密码::提醒和密码:重置功能使用发送用户名将无法解决问题。我只是不知道如何告诉它使用用户名列而不是电子邮件列。
有什么建议吗?