テンプレート構文:条件分岐
テンプレート内で条件によって出力内容を切り替えたい場合は、@if
ディレクティブを使用します。
これは、通常のプログラミング言語における if / else if / else
に相当する構文です。
基本構文
@if ( 条件式 )
<!-- 条件が true の場合に出力される内容 -->
@elseif ( 別の条件式 )
<!-- 上の条件が false かつ、こちらが true の場合に出力 -->
@else
<!-- すべての条件が false の場合に出力 -->
@endif
使用例:
@if ( x < 5 )
<div>Alice</div>
@elseif ( x > 5 )
<div>Bob</div>
@else
<div>Carol</div>
@endif
この例では、x
の値に応じて出力される内容が変わります。
x
が 5 未満の場合 ⇒<div>Alice</div>
x
が 5 より大きい場合 ⇒<div>Bob</div>
x
が ちょうど 5 の場合 ⇒<div>Carol</div>
入れ子の条件分岐
@if
は入れ子にできます。条件が複雑なときや、分岐の中にさらに条件がある場合に使います。
@if ( user.role == 'admin' )
<div>管理者メニュー</div>
@else
@if ( user.logged_in )
<div>ようこそ、{{ user.name }} さん</div>
@else
<div>ログインしてください</div>
@endif
@endif
このように、複雑な条件もテンプレート上で柔軟に記述できます。
まとめ
@if
の条件式には、数値比較、論理演算、関数呼び出しなど自由な式を記述できます。@elseif
は何回でも連続して使えます。@else
は省略できます。@if
は入れ子にできます。