Laravel6 デフォルトのメールテンプレートを編集する
こんばんは
大したことではないけど微妙にハマったので記事にします。
Laravelは会員登録やパスワードリセットなどを通知系の機能をコマンドだけで作ることができます。
php artisan make:notification クラス名
とかで作れる気がする。詳しくは適当にぐぐって。
こんな感じのクラスが作られます。
<?php namespace App\Notifications; use Illuminate\Auth\Notifications\VerifyEmail; use Illuminate\Notifications\Messages\MailMessage; class TestVerifyEmail extends VerifyEmail { public function toMail($notifiable) { if (static::$toMailCallback) { return call_user_func(static::$toMailCallback, $notifiable); } return (new MailMessage) ->subject(Lang::get('タイトル')) ->line(Lang::get('本文1行目')) ->action( Lang::get('ボタン'), $this->verificationUrl($notifiable) ) ->line(Lang::get('本文2行目')); } }
が、
このクラスで送られるメールのテンプレがvendor配下にあって編集できない!
本文とかタイトルはこのクラスで設定できるのに!
大変だ!どうしよう!しんじゃう!!
というときに
php artisan vendor:publish --tag=laravel-notifications
というコマンドを打つとあら不思議
src/resource/vendor/notifications/email.blade.php
というファイルが生成されます。すごーい。
このファイルを適当にいじればそのままメールのテンプレートになるというわけですね。
かがくのちからってすげー!
まぁちなみに、これ公式にも載ってるんですけどね。。ググって探すより公式見た方が早い。。
(これ↓は公式ではないけど公式を訳したページなのでほぼ公式だと思ってます。)