【发布时间】:2015-08-10 11:55:01
【问题描述】:
如何更改 laravel 中密码重置邮件中显示的内容? 就像用他的名字称呼用户并显示密码重置链接等。 该电子邮件视图位于何处?
【问题讨论】:
如何更改 laravel 中密码重置邮件中显示的内容? 就像用他的名字称呼用户并显示密码重置链接等。 该电子邮件视图位于何处?
【问题讨论】:
是的,您可以更改电子邮件模板,该模板位于
resources/views/emails/password.blade.php.
对于自定义,将用户模型的实例传递给此视图并在此处回显用户名,例如:
Hello, {{$user->username}}
//And Body of Reset link goes here
在更新的 laravel 版本中,代码结构进行了改进。 密码重置邮件现在位于 vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php
及其对应的模板位于: resources/views/vendor/notifications/email.blade.php
因此,为了自定义它,您可能需要:
【讨论】:
在 Laravel 5.3 中,他们更改了整个密码重置代码,因此给定的答案不再有效。
如果您想更改基本文本,您应该将 vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php 复制到您自己的应用程序中的某个位置(例如 app/Notifications/ResetPassword.php),设置正确的名称空间并根据需要更改文本。 (不要更改原始的 ResetPassword.php,因为更改供应商文件夹中的文件是不好的做法!)
然后在 User 类中添加一个sendPasswordResetNotification 方法,并确保引用了适当的 ResetPassword 类:
use App\Notifications\ResetPassword;
...
public function sendPasswordResetNotification($token) {
$this->notify(new ResetPassword($token));
}
如果您想更改邮件模板的其余部分(也用于所有其他邮件),请执行以下操作:
运行php artisan vendor:publish
这会将一些刀片从供应商文件夹复制到资源/视图/供应商 resources/views/vendor/notifications/email.blade.php 是您要更改的。
希望这对陷入 Laravel 5.3 的人有所帮助
【讨论】:
public function toMail($notifiable) { ... $notifiable->fullname ... } 根据您的具体实现,您应该能够从那里实现它您的邮件模板。可能看起来像这样:$MailMessage->greeting(trans('mail.passResetGreeting', ['name' => $notifiable->fullname]) );
php artisan vendor:publish --tag=laravel-notifications
php artisan vendor:publish 会将文件从供应商中取出并放入您自己的代码中,因此您实际上并没有更改供应商文件中的内容。这就是 Laravel 的预期工作方式。