クエリビルダ

参考

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

概要

クエリビルダはsqlを作って実行するための仕組み。

Eloquentも内部的にクエリビルダのインスタンスを持っている。

メソッド

sqlの関数に即したメソッドを持っている。

select, where, leftJoin, orderBy などのメソッドはクエリビルダのインスタンス(Illuminate\Database\Query\Builder)を返り値として返す。

またこの時点ではsqlは実行されない。

sqlが実行されるのはget()やfirst()が実行されるとき。

この結果はEloquentモデルのインスタンスとして返ってくる。

構文

  1. クエリビルダオブジェクトの取得
  2. メソッドチェーンでSQLを作成
  3. 実行してEloquentモデルのインスタンスを取得
クエリビルダをDBファサードから取得する方法
 $query = DB::table('users');
メソッド覚書

where系のメソッドは連続して繋げるとand条件になる。or条件を使いたい場合はwhere()にorWhereをつなげる。

join系のメソッドを使うことで条件に当てはまらないレコードはこの時点で弾くことができる。

クエリの実行・データの取得
  • get()

    • 全てのデータを取得する

    • object(Illuminate\Database\Eloquent\Collection)

  • first()

    • 最初の一行を取得する

    • object(App\User)など具体的なモデルインスタンス