LoginSignup
5
1

More than 3 years have passed since last update.

LaravelのEloquentとCollection

Posted at

備忘録

主題の通り実務に入ってヒイヒイ言ってるクソ雑魚エンジニアの備忘録です。
では、

Eloquent

Laravelに備わっているデータベースを簡単に扱える機能。
これがあることで生のSQLを書かなくてもデータを追加したり参照したり
様々なことが可能になる。すごい。

Collection

Collectionとはリスト形式でデータを格納できるラッパー
のことらしい。
配列と何が違うの!と思うところ。
このCollectionめっちゃ便利

Collectionで使えるメソッド↓
https://readouble.com/laravel/6.x/ja/collections.html

Collectionは最初からwhereやsortBy,groupByなど様々なメソッドが標準で利用できて、
ソート、絞り込み、グルーピング、繰り返し、もうほんとになんでもできる

本題

EloquentのメソッドとCollectionのメソッド紛らわしくて混乱するわ!!

転職して初めて基幹システムの開発に放り込まれて詰まったところ。ほんこれ。
- get()
- where()
- groupBy()
- orderBy()
- all()
- first()
上のはほんの一部だがこれ全部EloquentにもCollectionにもある。

メソッドの意味もほとんど変わらないんだけど
微妙に扱いが変わってくるから注意が必要。

結論

EloquentとCollectionの使い方は記事が腐るほどあってすぐ慣れたので
要点をかいつまむと

モデルからgetやallで複数件データを取り出すと取り出したデータはCollection型となって返る
あらかじめ必要なレコードがわかっている場合はfirst()
まとめてデータを取得してそれぞれに処理を行いたい場合は
getやallで取得してforeachなどで都度取り出してデータ処理をかけばいい。

       / DBインスタンス
Collection ー DBインスタンス
       \ DBインスタンス

↑こんなイメージ

もうこれは使いまくって慣れるのが一番楽です。(脳筋)
それではまた。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1