如何覆盖/添加到拉拉维尔的密码代理


How do I override / add to the Password Broker in Laravel?

Using Laravel 5.2

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

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

此函数获取密码令牌,并通过重置密码电子邮件视图发送电子邮件。我仍然需要密码重置功能,但我不能收到带有"重置密码"措辞的邀请电子邮件。

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

我也在为同样的事情而苦苦挣扎。我在自定义密码代理中添加了一个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');
});

然后,在模板身份验证/电子邮件/密码.刀片中.php

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