8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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インスタンス

↑こんなイメージ

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

8
2
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
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?