【Laravel】bladeテンプレート内でphpの変数に値をセットする方法|view側で関数やメソッドを使う

テンプレート内で変数を割り当てて後で使用する方法を解説します。

Laravelのviewテンプレートエンジンのbladeだと以下のような方法では代入できないはずです。

<div>{{ $name = 'your name' }}</div>

{{ }}の中は文字列を渡してあげる必要がありますが、上記だと代入している式を渡していることになるから、正しく挙動しないわけですね。

ではどうすればいいんでしょうか。

答えはこうです。

@php
 $name = 'your name';
@endphp

<div>{{ $name }}</div>

@php ~ @endphpで囲った範囲はbladeテンプレート内でも通常のPHPファイルと同じ記述ができます。

Laravel公式サイトだとこのへんでさらりと使われています。

https://laravel.com/docs/master/blade#conditional-classes

そこで代入した変数は当然、{{}}でいつものように画面に表示することができます。