Eloquentとクエリビルダ(Laravel)

■共通点
SQLを書かずに、簡潔なコードでDBアクセスできる
・PDO_parameter_bindingを使用する為、SQLインジェクションよる危険性が減る


①Eloquent
・LaravelのORM
・モデルクラスを使用
・自動的なマッピングが可能
・リレーションシップ(テーブル間の関連付け)をサポート 
・戻り値はモデルオブジェクト


②クエリビルダ
・メソッドチェーンでDBクエリを構築
・自動的なマッピングではなく、明示的にカラム名を指定する必要がある
・リレーションシップを扱うためには、追加のクエリを書く必要がある
・戻り値はコレクション

 

 

■どう使い分ける?
・クエリビルダを使うパターン
基本DB操作や、シンプルなクエリ操作はクエリビルダを推奨。
メソッドチェーンで柔軟に条件などを操作できる。

・Eloquentを使うパターン
モデル間の関連付けや、複雑なクエリを扱う場合はEloquentを推奨。
クエリビルダにはない特徴がある。