ループの記述方法
条件分岐の次はループです。
ループも@を付与する
ループの記述も条件分岐同様、通常のPHPコードの前に@を付与したディレクティブを使います。例えば、forループは以下の記述になります。
<ol>
@for($i = 1; $i <= 5; $i++)
<li>{{$i}}個目</li>
@endfor
</ol>
@endforの記述を忘れなければ、forの()内の記述は通常のPHPコードと同じです。
同じようにforeachも使えます。ここでは、ルーティング登録のコールバック関数内で、例えば、以下の連想配列をテンプレートに渡すとします。
$data["resultList"] = ["A"=>"田中", "B"=>"中野", "C"=>"野村"];
この連想配列をforeachでループさせながら表示する記述は、以下のようになります。
<ul>
@foreach($resultList as $key => $value)
<li>{{$key}}は{{$value}}です</li>
@endforeach
</ul>
foreachでも()内の記述は通常のPHPコードと同じです。
さらに、whileループも使えます。例えば、以下のコードです。
@while(true) <p>無限ループ</p> @endwhile
このコードは、無限ループになってしまいますね。
ループ中の変数$loop
Bladeでループディレクティブを使う場合、ループ内だけ$loopという特殊な変数が使えます。この変数を使うと、現在のループに関するさまざまな値を取り出すことができます。表1にどのような値が取り出せるかまとめておきます。
| 記述 | 取得できる値 |
|---|---|
| $loop->iteration | 現在の繰り返し回数(1始まり)。 |
| $loop->index | いわゆるインデックス値。0始まりの値で、繰り返し回数を-1したもの。 |
| $loop->remaining | 残りの繰り返し回数。 |
| $loop->count | ループ対象の配列の要素数。 |
| $loop->first | 最初の繰り返しかどうか。 |
| $loop->last | 最後の繰り返しかどうか。 |
| $loop->depth | ループの入れ子(ネスト)の階層数。 |
| $loop->parent | ループが入れ子になっている場合、親ループの$loop変数。 |
これらの変数を使って、例えばリスト9のように記述することが可能です。
~省略~
<ul>
@foreach($resultList as $key => $value)
<li>
@if($loop->first)
ループの始まりです。<br>
@endif
{{$loop->iteration}}回目: {{$key}}は{{$value}}です。
@if($loop->last)
<br>ループの終わりです。
@endif
</li>
@endforeach
</ul>
~省略~
このテンプレートに対してルーティングコールバック関数で以下の連想配列を渡してあげるとします。
$data["resultList"] = ["A"=>"田中", "B"=>"中野", "C"=>"野村", "D"=>"村井", "E"=>"井田"];
すると、実行結果としては、図5のようになります。
まとめ
今回は、Laravelのビューの扱いとして、テンプレートエンジンBladeの使い方とその連携方法を紹介しました。
次回は、Laravelでルーティングを登録する別の方法を紹介します。現在は、コールバック関数によるルーティング登録しか行っていませんが、クラスを使ったルーティング登録も可能なうえ、そちらの方がより一般的です。そのあたりを解説していきます。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 人気のPHPフレームワークLaravelを習得しよう連載記事一覧
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
