PHP
laravel5

Laravel で Model から条件を指定していないクエリビルダ(Eloquent Builder)オブジェクトを取得

Eloquet Model には query() というメソッドが存在し、それで取得できる。

>>> App\User::query()
=> Illuminate\Database\Eloquent\Builder {}

例えば、Commands で以下のようなことをしたいときにいい感じに書ける。

$query = App\User::query();

// オプションが指定されていたら条件を付与する
if (!empty($this->option('status'))) {
    $query->where('status', $this->option('status'));
}

// Builder オブジェクトに対する処理(例えば chunk)
$query->chunk(10, function ($users) {
    // 処理
});

確認環境

  • PHP 7.0
  • Laravel 5.4