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

时间:2016-02-20 06:23:52

标签: php laravel-5

使用Laravel 5.2

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

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

此功能获取密码令牌,并通过重置密码电子邮件视图发送电子邮件。我仍然需要密码重置功能,但我无法收到邀请电子邮件,并重置密码'空话。

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

1 个答案:

答案 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