今回は繰り返しのディレクティブの解説をしていきます。繰り返しのディレクティブも何種類も用意されています。まとめて解説していきます。
もし、Bladeの意味が分からない場合はこちらの記事を先に読んでください。
https://laravel-times.com/index.php/2021/05/03/blade/
forについて
phpのfor文に相当するディレクティブです。
1 2 3 |
@for (初期化 ; 条件 ; 後処理) ・・・繰り返し表示・・・ @endfor |
for文と同様に、()内に初期化処理、繰り返し条件、繰り返しの後処理と3つを用意します。
foreach文に相当するもの
1 2 3 |
@foreach ( $配列 as $変数 ) ・・・繰り返し表示・・・ @endforeach |
()の中には、配列と変数を用意します。これにより、配列から値を変数へと取り出す処理を繰り返します。
foreach-else文に相当するもの
1 2 3 4 5 |
@foreach ( $配列 as $変数 ) ・・・繰り返し表示・・・ @empty ・・・$変数が空の時の表示・・・ @endforeach |
値を全て取り出しきって、取り出せなくなったとき、@emptyにある処理を実行して繰り返しを終えます。
while文に相当するもの
1 2 3 |
@while ( 条件 ) ・・・繰り返し処理・・・ @endwhile |
引数に条件を設定して、その条件がtrueの場合処理を表示します。
しかし、whileでは実行時に条件で使っている変数などの値が変化しない場合、無限ループとなるため、ディレクティブ内で何かの処理を実行する必要があります。
繰り返しディレクティブを使用する
では、viewに下記を記載してください。
1 2 3 4 5 6 7 8 9 |
<body> <h1>Blade/Index</h1> <p>foreachディレクティブの例</p> <ol> @foreach($data as $item) <li>{{$item}}</li> @endforeach </ol> </body> |
これにより、$dataから順に値を取り出して$itemに代入するという繰り返しが実行されます。コントローラ側で$dataに配列を渡すようにしましょう。
では、LaravelControllerクラスの修正をしましょう。
1 2 3 4 5 |
public function index() { $data = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; return view('laravel.index',['data'=>data]) } |
修正したら/laravelにアクセスしてみてください。