メインコンテンツまでスキップ

テンプレート構文:条件分岐

テンプレート内で条件によって出力内容を切り替えたい場合は、@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 は入れ子にできます。