使用 Laravel 5.2
我需要覆盖几个功能/向密码重置过程添加一些新内容。我知道我可以使用现成的密码 Controller 覆盖 Illuminate\Foundation\Auth\ResetsPasswords
中的功能。
我还需要在 Illuminate\Contracts\Auth\PasswordBroker
中进行更改。我的目标是收到一封邀请电子邮件,用于设置使用现有密码重置功能的初始密码。唯一的问题是函数 sendResetLink
。
此函数获取密码 token 并通过重置密码电子邮件 View 发送电子邮件。我仍然需要密码重置功能,但我无法收到带有“重置密码”字样的邀请电子邮件。
我该怎么做?我想我可以复制和调整重置类的功能以使用电子邮件的邀请 View ,但我不知道如何扩展代理类来完成这项工作。
最佳答案
我也在为同样的事情苦苦挣扎。我向我的自定义 PasswordBroker 添加了一个 setEmailView() 方法,并在 AuthController 中发送重置链接之前调用了该方法,但这破坏了常规密码重置功能。<br/> 所以,我放弃了所有这些,转而采用更简单的方法。在 AuthController.php 中,将变量注入(inject)密码模板。
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
关于php - 如何覆盖/添加到 Laravel 中的密码代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35519949/