使用Laravel 5.2
我需要覆盖几项功能/在密码重置过程中添加一些新内容。我知道我可以使用密码控制器覆盖Illuminate\Foundation\Auth\ResetsPasswords
中的功能。
我还需要在Illuminate\Contracts\Auth\PasswordBroker
中进行更改。我的目标是设置一个邀请电子邮件,用于设置使用现有密码重置功能的初始密码。唯一的问题是函数sendResetLink
。
此功能获取密码令牌,并通过重置密码电子邮件视图发送电子邮件。我仍然需要密码重置功能,但我无法收到邀请电子邮件,并重置密码'空话。
我该怎么做?我想我可以复制和调整重置类的功能以使用电子邮件的邀请视图,但我无法弄清楚如何扩展代理类以使其工作。
答案 0 :(得分:2)
我正在努力做同样的事情。我在我的自定义PasswordBroker中添加了一个setEmailView()方法,并在发送AuthController中的resetlink之前调用了该方法,但这打破了常规密码重置功能。<br/> 所以,我废弃了所有这些,并采取了一种更简单的方法。在AuthController.php中,将一个变量注入密码模板。
view()->composer('auth.emails.password', function($view) {
$view->with(['register'=>true]);
});
Password::sendResetLink(['email'=>$data['email']], function($message) {
$message->subject('Registration Email');
});
然后,在模板auth / emails / password.blade.php
中@if ( isset($register) )
Whatever you want to say in registration Email.
@else
Normal password reset Email here.
@endif