laravel 客製化變更密碼信件 2024-04-02 14:56:01

1.
//建立新的notification
php artisan make:notification PasswordReset
//複製mail的模板
php artisan vendor:publish --tag=laravel-mail
//複製notification的模板
php artisan vendor:publish --tag=laravel-notifications

2.更改app/Notifications/PasswordReset.php (信件客製的文字和按鈕)
(1)引入Lang

use Illuminate\Support\Facades\Lang;

(2)建構子帶入$token

public $token;

public function __construct($token)

    {

        $this->token = $token;

    }

(3)更改toMail

public function toMail($notifiable)

    {

        if (static::$toMailCallback) {

            return call_user_func(static::$toMailCallback, $notifiable, $this->token);

        }


        return (new MailMessage)

            ->subject(Lang::get('信件主旨'))

            ->action(Lang::get('按鈕顯示文字'), url(route('password.reset', ['token' => $this->token, 'email' => $notifiable->getEmailForPasswordReset()], false)))

            ->line(Lang::get('這個驗證連結會在 :count 分鐘後失效.', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]))

            ->line(Lang::get('如果您沒有申請變更密碼,請無視信件.'));

    }

3.更改views/vendor/notification/email.blade.php
更改信件格式固定的文字,如:Whoops! 或 Hello!之類的

4.更改
views/vendor/mail/html/layout.blade.php
更改模板格式

Vincent Chen

無聊寫了一堆雜七雜八程式的勞工