こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでBladeビューの@foreachディレクティブなどの繰り返し処理でインデックスを取得することができる$loop変数のindexプロパティを丁寧に説明していきます。
Bladeビューと@foreachディレクティブについては、こちらの記事をご参考ください。
【Laravel】テンプレートエンジンのBladeの概要を説明します
@foreachディレクティブについて
【Laravel】Bladeビューで繰り返し処理ができる@foreachディレクティブを解説します
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Laravelのバージョン | 8.10.0 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
$loop変数のindexプロパティとは
$loop変数のindexプロパティとは、Bladeビューでの繰り返し処理のインデックスを取得することができるプロパティです。
$loop変数のindexプロパティは、↓のように使います。
繰り返し処理の中で、
1 |
{{$loop->index}} |
を指定してあげれば、インデックスを取得することができます。
ちなみに、インデックスは0始まりです。
では、次の章で実際に使って解説します。
$loop変数のindexプロパティを解説するプログラムの概要
$loop変数のindexプロパティを解説するプログラムは、
- コントローラー
- Bladeビュー
- web.php
3つを使います。
コントローラーは名前を【SampleController.php】とし、配列を作成しBladeビューに渡します。
コントローラーからBladeビューに値を渡す方法については、こちらの記事をご参考ください。
Bladeビューではコントローラーから受け取った配列を@foreachディレクティブでインデックスと配列の中身を表示します。
Bladeビューは名前を【printsample.blade.php】とし、viewsディレクトリ直下に格納します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/printsample】でアクセスした場合、SampleControllerの【printsample.blade.php】を呼ぶメソッドを呼ぶように定義します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
コントローラー:SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class SampleController extends Controller { public function showValue(){ $fruitarray = array('カキ','ぶどう', 'リンゴ', 'オレンジ', 'いちご'); return view('printsample', compact('fruitarray')); } } |
Bladeビュー:printsample.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>$loop->indexサンプルページ</h1> @foreach($fruitarray as $fruit) <p>{{$loop->index}} 番目:{{$fruit}}</p> @endforeach </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/printsample', [SampleController::class, 'showValue']); |
実行して確認
本当にコントローラーからBladeビューに値を渡すことができているのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/printsample
※コマンドプロンプトに記載されているURL - http://localhost:8000/printsample
どちらかのURLにアクセスすれば、繰り返し処理でインデックスが取得できていることが確認できます!
まとめ:繰り返し処理で$loop変数のindexプロパティを使ってみよう
以上がLaravelのBladeビューで繰り返し処理のインデックスを取得できる$loop変数のindexプロパティの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント