【问题标题】:How do I override / add to the Password Broker in Laravel?如何覆盖/添加到 Laravel 中的密码代理?
【发布时间】:2016-02-20 06:23:52
【问题描述】:

使用 Laravel 5.2

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

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

此函数获取密码令牌并通过重置密码电子邮件视图发送电子邮件。我仍然需要密码重置功能,但我无法收到带有“重置密码”字眼的邀请电子邮件。

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

【问题讨论】:

    标签: php laravel-5


    【解决方案1】:

    我也在为同样的事情苦苦挣扎。我在我的自定义 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');
    });
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-21
      • 2019-10-04
      • 1970-01-01
      • 2021-09-27
      • 2017-03-22
      • 2013-06-25
      • 2021-04-21
      • 2017-09-25
      相关资源
      最近更新 更多