Php 如何通过电子邮件在Laravel 5.4中重置密码

Php 如何通过电子邮件在Laravel 5.4中重置密码,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,当用户单击密码重置按钮时,如何将密码重置链接发送到他们的电子邮件 我有一张表格 <form action="/company/password/reset/" method="POST"> {{ csrf_field() }} <div class="row"> <div class="input-field col s12"> <input placeholder="Enter your

当用户单击密码重置按钮时,如何将密码重置链接发送到他们的电子邮件

我有一张表格

<form action="/company/password/reset/" method="POST">
      {{ csrf_field() }}
      <div class="row">

        <div class="input-field col s12">

          <input placeholder="Enter your email" id="emails" type="email" class="validate" required name="email">
          <label for="emails">E-mail Address</label>
        </div>   
      </div>
      <p><button type="submit" method="post">SUBMIT</button></p>
    </form>
和控制器

public function company($email)
    {
        $company = $request->email;
    Password::sendResetLink(['email' => $company]);
    }
现在不行,这是正确的方法吗

我在laravel 5.4中找不到任何关于重置密码的教程

我得到这个错误:

用户必须实现CanResetPassword接口

如果表单的操作为/company/password/reset/,则路由应定义为

Route::post('/password/company/reset/','PasswordResetController@company');
可以在控制器中检索表单的输入,如下所示:

public function company(Request $request) {
    $email = $request->email;
    ...
报告明确指出:

要开始,请验证您的App\User模型是否实现了light\Contracts\Auth\CanResetPassword契约。当然,框架中包含的App\User模型已经实现了这个接口,并使用light\Auth\Passwords\CanResetPassword特性来包含实现该接口所需的方法


由于您有一些自定义的用户模型,因此需要执行此合同才能使用Password::sendResetLink

谢谢。但是我如何发送密码重置链接;显然这不起作用,有没有这样的方法来发送重置链接?请阅读,有许多条件需要满足才能使其起作用。我建议检查日志并用相关错误消息更新问题。运动部件太多,无法做出有根据的猜测。用户可能不存在,电子邮件传输可能配置错误等。我收到此错误-用户必须实现CanResetPassword接口。亲爱的@ChrisMkp,我已经更新了您的问题,但您确实应该自己更新。请参阅更新的答案如何解决问题。
public function company(Request $request) {
    $email = $request->email;
    ...