##Collection
PHPの配列を拡張したもので、多数の専用メソッドがある(all, combine, countなど)。
- use App\Models\Owner; を読み込み。
- 例として、
$c_test = collect([
'name' => 'てすと'
]);
返り値としてCollectionや、standardClassなどがある。
参考
https://readouble.com/laravel/8.x/ja/collections.html
https://techplay.jp/column/630
##QueryBuilder
SQLに近いかたちで、selectやwhereなどを使ってDBのデータを扱う。
- use Illuminate\Support\Facades\DB; を読み込み。
- 例として、
$q_get = DB::table('テーブル名')->select('name', 'created_at')->get();
とすると、指定したテーブルからnameと作成日時のデータを取得することができる。
また、
$q_first = DB::table('テーブル名')->select('name')->first();
とすると、指定したテーブルのカラムの1番目を取得することができる。
行全体が必要ない場合は、valueメソッドを使用してレコードから単一の値を抽出できる。
$email = DB::table('users')->where('name', 'John')->value('email');
id列の値で単一の行を取得するには、findメソッドを使用する。
//配列で取得
$user = DB::table('users')->find(3);
##Eloquent(モデル)
データ型が少し異なり、Illuminate\Database\Eloquent\Collectionとなり、SupportのCollectionを継承してさらに機能が増えている。Eloquentモデルを作っておけば、それを使ってQueryBuilderよりも簡単にデータを取得できる。例えば、
$e_all = モデル名::all();
とすると、指定したモデル名のデータを全て取得することができる。
QueryBuilderとEloquentの違いについて
https://cloudsmith.co.jp/blog/backend/laravel/2021/06/1817294.html