如何在用户点击密码重置按钮时将密码重置链接发送给用户电子邮件。
我有一张表格
<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>
路线
Route::post('/password/company/reset/', 'PasswordResetController@company');
和控制器
public function company($email)
{
$company = $request->email;
Password::sendResetLink(['email' => $company]);
}
它现在不能正常工作,这是正确的方法吗?
我在laravel 5.4中找不到任何覆盖重置密码的教程
我收到此错误:
用户必须实现CanResetPassword接口。
答案 0 :(得分:1)
如果表单的操作为/company/password/reset/
,则路径应定义为
Route::post('/password/company/reset/','PasswordResetController@company');
可以在控制器中检索表单的输入,如下所示:
public function company(Request $request) {
$email = $request->email;
...
documentation明确说:
要开始使用,请验证您的
App\User
模型是否实施了Illuminate\Contracts\Auth\CanResetPassword
合同。当然,框架中包含的App\User
模型已经实现了此接口,并使用Illuminate\Auth\Passwords\CanResetPassword
特征来包含实现接口所需的方法。
由于您有自定义用户模型,因此需要实施此合同才能使用Password::sendResetLink