如何覆盖/添加Laravel中的密码代理?

TH1*_*981 9 php laravel-5

使用Laravel 5.2

我需要覆盖几个功能/在密码重置过程中添加一些新东西.我知道我可以覆盖Illuminate\Foundation\Auth\ResetsPasswords使用密码控制器的功能.

我还需要进行更改Illuminate\Contracts\Auth\PasswordBroker.我的目标是设置一个邀请电子邮件,用于设置使用现有密码重置功能的初始密码.唯一的问题是在功能sendResetLink.

此函数获取密码令牌并通过重置密码电子邮件视图发送电子邮件.我仍然需要密码重置功能,但我无法收到包含"重置密码"字样的邀请电子邮件.

我怎样才能做到这一点?我想我可以复制和调整重置类的功能以使用电子邮件的邀请视图,但我无法弄清楚如何扩展代理类以使其工作.

GsS*_*man 2

我也在为同样的事情而苦苦挣扎。我向自定义的PasswordBroker 添加了一个setEmailView() 方法,并在AuthController 中发送重置链接之前调用该方法,但这破坏了常规密码重置功能。
因此,我放弃了所有这些并采用了一种更简单的方法。在 AuthController.php 中,将变量注入密码模板。

view()->composer('auth.emails.password', function($view) {
    $view->with(['register'=>true]);
});
Password::sendResetLink(['email'=>$data['email']], function($message) {
    $message->subject('Registration Email');
});
Run Code Online (Sandbox Code Playgroud)

然后,在模板 auth/emails/password.blade.php 中

@if ( isset($register) )
    Whatever you want to say in registration Email.
@else
    Normal password reset Email here.
@endif
Run Code Online (Sandbox Code Playgroud)