Laravelのbladeで変数を定義する

code

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ヘルパーを使うとスッキリするでしょう。

金井 泰樹のアバター 金井 泰樹 FUNBREW代表

FUNBREWの代表。
新卒からIT系の企業に勤め、SES、スマホアプリ開発、自社開発の会社で経験を積んで独立。
新卒時代にエンジニアとしてのキャリアを積むのに失敗し、その後に苦労した経験から、現在教育事業の立ち上げを準備中。
強みはウェブシステム開発全般と迅速なレスポンスです。

目次