🌟
Laravelでデータベースからデータ取得する時のget()とfirst()の違い
1件取るか複数とるかの違いだけの様な記事が多く初心者としてはなるほどそうなのかと
納得していましたが色々なデータを扱う内に混乱することが多くなって来たので調べて纏めてみました。
- get()
- 複数データ形式で返る。(結果が1件でも)Eloquentコレクションで返ってくる。
- first()
- 1件だけ返ってくる。ModelインスタンスかstdClassオブジェクトで返ってくる。
混乱ポイントは、データをeloquentモデル(ORM)で取得する時とクエリビルダで取得するときで
返ってくるデータの形がわかりづらい形で違うからだと感じました。
以下が、自分の中のイメージ図です。
※DBファサードを使った
stdClassはあらかじめ自分で定義されていないにも関わらず、そのまま使えます。これはPHPの内部であらかじめ定義されているからです。
データを配列ではなく、オブジェクトの形で保存したい場合などに使うことが出来ます。
参考にさせて頂いた記事
Discussion