こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、13年目エンジニアです。
この記事では、 LaravelでCollectionインスタンスを生成できるCollection::collectメソッドについて
- Collection::collectメソッドとは
- Collection::collectメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
Laravelのバージョン | 10.45.1 |
この記事では
C:\Laravel
配下に【LaravelSample】という名前でプロジェクトを作成しています。
Collection::collectメソッドとは
Collection::collectメソッドとは、引数で指定した配列をCollectionインスタンスに生成するメソッドです。
Collectionクラスのメソッドを使うためには
1 |
use Illuminate\Support\Collection; |
を宣言する必要があります。
使い方サンプルは下記になります。
1 |
$result = Str::startsWith('ababababab', 'ab'); |
上記の例だとresultには以下の内容のCollectionインスタンスが返されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
object(Illuminate\Support\Collection)#291 (2) { ["items":protected]=> array(3) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" } ["escapeWhenCastingToString":protected]=> bool(false) } |
では、次の章で実際に使ってみます。
Collection::collectメソッドを解説するプログラムの概要
Collection::collectメソッドを解説するプログラムは、
- コントローラー
- Bladeビュー
- web.php
3つを使います。
コントローラーは名前を【SampleController】とし、
LaravelSample\app\Http\Controllers\SampleController.php
に位置しています。
Collection::collectメソッドを使って、Collectionインスタンスを生成し、Bladeビューで表示させ中身を確認します。
コントローラーからBladeビューに値を渡して表示する方法は以下の記事をご参考ください。
Bladeビューは名前を【sample.blade.php】とし、viewsディレクトリ直下に格納します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/sample】でアクセスした場合、SampleControllerのCollection::collectメソッドを確認するメソッドを呼ぶように定義します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
コントローラー:SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php namespace App\Http\Controllers; use Illuminate\Support\Collection; class SampleController extends Controller { /** * Collection::collectメソッドサンプル */ public function collection_sample(){ $fish_collection = collect(['salmon', 'tuna', 'sardine']); $fruit_collection = collect(['apple', 'grapes', 'tangerines', 'pineapple']); return view('sample', compact('fish_collection', 'fruit_collection')); } } |
Bladeビュー:sample.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charaset="utf-8"> <title>Collection::collectメソッドサンプル</title> </head> <body> <h3>fish_collectionを表示</h3> <pre>{{ var_dump($fish_collection) }}</pre> <h3>fruit_collectionを表示</h3> <pre>{{ var_dump($fruit_collection) }}</pre> </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/sample', [SampleController::class, 'collection_sample']); |
実行して確認
Collection::collectメソッドの実行結果を確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/sample
※コマンドプロンプトに記載されているURL - http://localhost:8000/sample
どちらかのURLにアクセスします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
fish_collectionを表示 object(Illuminate\Support\Collection)#291 (2) { ["items":protected]=> array(3) { [0]=> string(6) "salmon" [1]=> string(4) "tuna" [2]=> string(7) "sardine" } ["escapeWhenCastingToString":protected]=> bool(false) } fruit_collectionを表示 object(Illuminate\Support\Collection)#280 (2) { ["items":protected]=> array(4) { [0]=> string(5) "apple" [1]=> string(6) "grapes" [2]=> string(10) "tangerines" [3]=> string(9) "pineapple" } ["escapeWhenCastingToString":protected]=> bool(false) } |
引数で指定した配列のCollectionインスタンスが返されていることを確認できました。
まとめ:Collection::collectメソッドを使ってみよう
以上がLaravelで指定した配列からCollectionインスタンス生成できるCollection::collectメソッドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント