Laravel 5发送密码重置和自定义输入名称

时间:2018-06-04 11:56:02

标签: php laravel

我想在同一页面上注册/登录并发送密码重置。

我实现了在不同输入名称的同一页面上注册和登录。但我找不到添加密码重置输入的方法。

我想把它叫做“reset_email”但是在我的控制器上,如果我尝试:

public function sendResetLinkEmail(Request $request)
{
    $this->validateEmail($request);

    // We will send the password reset link to this user. Once we have attempted
    // to send the link, we will examine the response then see the message we
    // need to show to the user. Finally, we'll send out a proper response.
    $response = $this->broker()->sendResetLink(
        $request->only('email')
    );

    return $response == Password::RESET_LINK_SENT
                ? $this->sendResetLinkResponse($response)
                : $this->sendResetLinkFailedResponse($request, $response);
}

/**
 * Validate the email for the given request.
 *
 * @param \Illuminate\Http\Request  $request
 * @return void
 */
protected function validateEmail(Request $request)
{
    $this->validate($request, ['reset_email' => 'required|email']);
}

我有这个错误:

  

我们找不到具有该电子邮件地址的用户。

知道如何使用reset_email代替电子邮件输入我的输入名称吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

像这样更新你的方法:

...
$response = $this->broker()->sendResetLink(
    ['email' => $request->get('reset_email')]
);
...

这将获得您的输入值,并通过密钥电子邮件将其发送给密码经纪人,因此它将通过此​​列查找用户。