Laravelのbladeで変数を定義したいときがあります。
HTMLの構造はほとんどで、値だけ変えたい時などです。
例えば、元のコードは以下のような形だとします。
説明のためにHTMLの構造はシンプルにしています。
@if (isset($somethingValue))
<div>{{ $somethingValue }}</div>
@else
<div>Not Defined</div>
@endif
三項演算子を使う方法もありますが、個人的には可読性が落ちると感じています。
<div>{{ isset($somethingValue) ? $somethingValue : 'Not Defined' }}</div>
そこでblade内で変数を定義します。
@php
$newValue = $somethingValue;
if (empty($newValue)) {
$newValue = 'Not Defined';
}
@endphp
<div>{{ $newValue }}</div>
コード量は増えましたが、HTMLにロジックを持ち込まなくて良くなりました。
さらに複雑になるようであれば、viewヘルパーを使うとスッキリするでしょう。