📘
Laravelのコレクション型ってなんだ?
全然わかんなかったので調べました。
まずはざっくりとした概念を理解したい。
キーワード
- Eloquent
- イテレータ、イテーラブル
- デザインパターン
これらのキーワードの意味がわからないとわからないので
調べてみよう。
自分的超要約
Laravelのコレクションは、大きく2つに分かれている
- 意図的にコレクション型にするやつ(基本的なコレクション)
- Eloquentで取得したデータとしてのコレクション
- https://readouble.com/laravel/9.x/ja/eloquent-collections.html
-
Eloquentクエリの結果は、常にCollectionインスタンスを返します。
で、コレクション自体はデータをイテレータとしても機能する形に変えた
便利なデータ群みたいなイメージ。(イテーラブルなデータ)
配列でもある。
イテレータは過去の偉人達が編み出したデザインパターンの一つで色んなパターン
のデータをいい感じに扱う方法。
例えば↓の様な配列をidは降順で、family-nameはアルファベット順でってなると大変
だけど扱うデータが増えても柔軟に対応できる考え方。
$name_list = [
[
'family-name' => 'Matumoto',
'given-name' => 'Jun',
'id' => 5
],
[
'family-name' => 'Kobayashi',
'given-name' => 'Kentaro',
'id' => 1,
],
[
'family-name' => 'Mudata',
'given-name' => 'Shuichi',
'id' => 2
],
[
'family-name' => 'Kamijou',
'given-name' => 'Touma',
'id' => 4
],
[
'family-name' => 'Murakami',
'given-name' => 'Ryu',
'id' => 3
],
];
参照
でlaravelではこれを更に便利に使える様に色んなメソッドを用意してくれている
あとは使っていけば理解が深まるかな。。
他の参考記事
Discussion