我正在尝试覆盖正在放入电子邮件中的actionUrl以重置用户帐户。但无论我做什么,它都保持不变。我尝试覆盖我的Route文件。有人能帮助我吗?
以下是我的路线文件中的路线:
Route::get('cms/password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
这是我的电子邮件模板:
<p style="{{ $style['paragraph-sub'] }}">
<a style="{{ $style['anchor'] }}" href="{{ $actionUrl }}" target="_blank">
{{ $actionUrl }}
</a>
</p>`
我知道actionUrl是在SimpleMessage.php中定义的,但我不知道它在哪里设置。
答案 0 :(得分:5)
该链接在printf
中设置。这是通过密码重置请求发送的通知。
此通知在Illuminate\Auth\Notifications\ResetPassword
中初始化,这是一个特定的特征,而不是您的Illuminate\Auth\Passwords\CanResetPassword
模型。
所以您需要做的就是创建自己的重置通知并覆盖App\User
模型上的sendPasswordResetNotification
方法,如下所示:
User
修改php artisan make:notification MyResetPasswordNotification
app/Notifications/MyResetPasswordNotification.php
然后将其添加到<?php
namespace App\Notifications;
use Illuminate\Notifications\Messages\MailMessage;
class MyResetPasswordNotification extends \Illuminate\Auth\Notifications\ResetPassword
{
/**
* Build the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', url('YOUR URL', $this->token))
->line('If you did not request a password reset, no further action is required.');
}
}
app/User.php
当然,您需要创建自己的路线,就像您在问题中写的那样,您也必须更改刀片视图。