目次
はじめに
この記事ではLaravelのテンプレートbladeで、
配列の要素が何個めか、偶数行か奇数行かなど配列の情報?を簡単に取ってこれる変数があるので紹介します。
loop変数
Viewで表(テーブル)を作る時に見やすくするために何個目の配列か、
偶数、奇数なのか確認、表示したいことありませんか?
例えば No.の数字は配列の要素を上から順に1,2,3と入れたい
No. | Color |
1 | 赤 |
2 | 緑 |
行が偶数奇数の時でデザイン変えたい
No. | Color |
---|---|
1 | 赤 |
2 | 緑 |
3 | 白 |
こんな時にPHPで自力で書いて表示させることもできますが、
ViewにPHPのコードがごちゃごちゃは嫌だなあと思う人もいるはずです。そんな時に使えるのがLaravelのLoop変数
https://readouble.com/laravel/8.x/ja/blade.html#the-loop-variable
とりあえずテンプレートでデザイン整える時に必要な変数が揃ってそうです!
プロパティ | 説明 | お勧め用途 |
---|---|---|
$loop->index | 現在のループのインデックス(初期値0) | 配列で何番目の要素を取り出したい時 |
$loop->iteration | 現在の繰り返し数(初期値1) | 表のデータの何番目か表示したい時 |
$loop->remaining | 繰り返しの残り数 | |
$loop->count | 繰り返し中の配列の総アイテム数 | 総データ件数を取り出したい時 |
$loop->first | ループの最初の繰り返しか判定 | |
$loop->last | ループの最後の繰り返しか判定 | |
$loop->even | これは偶数回目の繰り返しか判定 | 偶数回目であることを確認 |
$loop->odd | これは奇数回目の繰り返しか判定 | 奇数回目であることを確認 |
$loop->depth | 現在のループのネストレベル | |
$loop->parent | ループがネストしている場合、親のループ変数 |
foreachの中でこんな感じで使えます♪
@foreach ($samples as $sample) <tr> <th>行数</th> <th>{{$loop->iteration}}</th> </tr> @endforeach
Bladeのloop変数を使ったサンプル
この前Bootstrap入れたのでBootstrapも使ってみました。
奇数行目が赤、偶数が青になるようにしました。
行数をloop変数を使い表示しました。
見た目

サンプルコード
<head> <link href="{{ asset('css/app.css') }}" rel="stylesheet"> </head> <body> <table class="table table-bordered"> <tr> <th>行番号</th> <th>名前</th> <th>年齢</th> </tr> @foreach ($tests as $test) @if($loop->odd) <tr class=table-danger> @else <tr class=table-primary> @endif <td>{{$loop->iteration}}</td> <td>{{$test->username}}</td> <td>{{$test->age}}</td> </tr> @endforeach </table> </body>
コメント