Laravel 5.5 でメール送信を行おうとしています。
マニュアルに従い Mailable を継承したクラスの build() で次のようにして message をテンプレートに渡しています。
public function build() { return $this->view('emails.contact')->with([ 'message' => 'hello' ]); }
しかし、blade に渡された $message は文字列「hello」ではなく Swift_Message オブジェクトが上書きで格納されています。そのため{{ $message }}
で表示しようとしてもエラーとなってしまいます。
動きをたどってみたところ Illuminate\Mail\Mailer の send() で確かに $data['message'] = $message = $this->createMessage();
という形で上書きされていました。
マニュアルによると $message を使うことはできないということなので名前を変えると動作しました。
また、message の他、data, connection, queue, chainConnection など見知らぬ変数名が自動的にビューに渡されているのでそれらの名前も避けたほうが良さそうに見えます。(ちなみに $data['message']
には hello がセットされていました)
$data, $connection などの変数名も避けるべきでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。