bladeの制御構文
bladeで変数の出力は、{{ $xxx }} の形式で「echo」と同様に画面出力ができますがその他、制御構文やループも決まった構文があります。またネイティブのPHPプログラムを使う場合も決まった構文が用意されています。この構文の事をディレクティブとも呼びます。ここではbladeの主要なディレクティブを紹介します。
分岐処理
if文を通常のPHPで記述した場合
1 2 3 4 5 6 7 |
<?php if($id==1) : ?> <input type="submit" name="delete" value="削除"> <?php elseif($id==2) : ?> <input type="submit" name="return" value="戻る"> <?php else : ?> <input type="submit" name="send" value="送信"> <?php endif; ?> |
blade テンプレートファイルに記述した場合
1 2 3 4 5 6 7 |
@if($id==1) <input type="submit" name="delete" value="削除"> @elseif($id==2) <input type="submit" name="return" value="戻る"> @else <input type="submit" name="send" value="送信"> @endif |
bladeでは、構文の最初に「@」が付きます。PHPタグも不要です。
PHPディレクティブ
bladeテンプレートファイルでPHPスクリプトを記述できます。
1 2 3 4 5 6 7 8 9 |
@php $rows[ ['name' => '山田太郎','tel'=>'000-000-0000','mail'=>'yamada@mail.com'], ['name' => '田中花子','tel'=>'111-111-1111','mail'=>'tanaka@mail.com'], ['name' => '佐藤次郎','tel'=>'222-222-2222','mail'=>'sato@mail.com'], ] vardump($rows); @endphp |
繰り返し
繰り返し構文は、for文、while文、foreach文が代表的です。
以下のデータを準備しておきます。
ここでは、foreach。
1 2 3 4 5 |
@foreach($rows as $row) {{ $row['name'] }}<br> {{ $row['tel'] }}<br> {{ $row['mail'] }} @endforeach |
for文
1 2 3 4 5 |
@for($i=0; $i<count($rows); $i++) {{ $row[$i]['name'] }}<br> {{ $row[$i]['tel'] }}<br> {{ $row[$i]['mail'] }} @endfor |
while文
1 2 3 4 5 6 7 8 |
$counter=0; @while($counter < count($rows)) {{ $row[$counter]['name'] }}<br> {{ $row[$counter]['tel'] }}<br> {{ $row[$counter]['mail'] }} $counter++; @endwhile |
ループの中で使用する「break」,「continue」
@break
@continue
その他の構文
変数($variable)が定義されていた場合にtrueとなる
isset
1 2 3 4 5 |
@isset($variable) ... @else ... @endisset |
変数($variable)が空文字列, null, 0などの時にtrueとなる
1 2 3 4 5 |
@empty($variable) ... @else ... @endempty |
ここでは、代表的なものを掲載してます。
その他にもあるので後は調べてください。