自定义密码重置邮件在Laravel中查看

Asa*_*ami 7 email laravel

如何更改laravel中密码重置电子邮件中显示的内容?就像用他的名字向用户说话并显示密码重置链接等.该电子邮件视图位于何处?

Arn*_*rdt 6

在Laravel 5.3中,他们更改了整个密码重置代码,因此给定的答案不再起作用。

如果要更改基本文本,则应将vendor / laravel / framework / src / Illuminate / Auth / Notifications / ResetPassword.php复制到自己应用程序中的某个位置(例如app / Notifications / ResetPassword.php),设置正确的名称空间并根据需要更改文本。(请勿更改原始的ResetPassword.php,因为更改供应商文件夹中的文件是不正确的做法!)

然后sendPasswordResetNotification向User类添加一个方法,并确保引用适当的ResetPassword类:

use App\Notifications\ResetPassword;

...

public function sendPasswordResetNotification($token) {
    $this->notify(new ResetPassword($token));
}
Run Code Online (Sandbox Code Playgroud)

如果要更改邮件模板的其余部分(也用于所有其他邮件),请执行以下操作:

php artisan vendor:publish

这会将一些刀片从供应商文件夹复制到资源/视图/供应商资源/视图/供应商/通知/email.blade.php是您要更改的刀片。

希望这对那些被Laravel 5.3困扰的人有所帮助


Ali*_*lik 2

是的,您可以更改电子邮件模板,该模板位于

 resources/views/emails/password.blade.php.
Run Code Online (Sandbox Code Playgroud)

对于自定义,将用户模型的实例传递到此视图并在那里回显用户名,如下所示:

Hello, {{$user->username}}
//And Body of Reset link goes here
Run Code Online (Sandbox Code Playgroud)

Laravel 5.3+ 更新

在更新的 Laravel 版本中,代码结构被修改。密码重置邮件现在位于vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php

其相应的模板位于: resources/views/vendor/notifications/email.blade.php

因此,为了自定义它,您可能需要:

  • 将其复制到应用程序目录中的某个位置。
  • 设置正确的命名空间来引用它。
  • 向 User 类添加新方法并将其引用到新复制的类
  • 定制。