问题描述
我使用 fortify 进行身份验证,但是我需要更改由 fortify 自动发送的“重置密码”电子邮件模板中的文本。我找不到实现这一目标的方法。
还可以使模板可从 Nova 编辑吗?我在 Nova 中有一个 MailTemplate 资源以允许从 Nova 更改电子邮件模板,但我无法为“重置密码电子邮件”实现此目的,因为它是由 fortify 发送的,并且无法找到控制它的方法。
解决方法
Fortify 使用 Laravel 的核心通知系统发送密码重置电子邮件。对此负责的特定文件是位于 PasswordReset.php
的 Illuminate\Auth\Notifications
文件。
自定义发送的电子邮件的最简单方法是制作 PasswordReset
文件的副本并将其保存到您的项目中,并使用不同的名称(可选)(例如 App\Notifications
)。
复制并根据自己的喜好对其进行自定义后,您需要覆盖 sendPasswordResetNotification
模型上的 User
方法,该方法继承自 CanResetPassword
Authenticatable
课。
/**
* Send the password reset notification.
*
* @param string $token
* @return void
*/
public function sendPasswordResetNotification($token)
{
$this->notify(new App\Notifications\CustomResetPasswordNotification($token));
}
当您在那里时,您可能想要覆盖其他一些通知,例如 VerifyEmail
通知。
关于在 Nova 中管理内容/布局,我怀疑这是可能的。您可能需要编写一个自定义程序包来读取 mardown
文件,这就是您在电子邮件中使用的内容,或者为可以存储在数据库中并通过 Nova 管理的文本定义一些占位符。