Laravel5のクエリビルダー

Laravel 5.5 Eloquent:利用の開始

Tip!! Eloquentモデルはクエリビルダですから、クエリビルダで使用できる全メソッドを確認しておくべきでしょう。Eloquentクエリでどんなメソッドも使用できます。
っていうことなので、結局クエリービルダーです。

use Illuminate\Support\Facades\DB;

ファサードのDBを使うだけでよいっぽいです。モデルが云々とかエンティティーが云々いうよりテーブル名を直接指定するので直感的といえば直感的です。取得したオブジェクトは外側の殻がオブジェクトでレコードが配列で、各カラムの値がオブジェクトというわかりやすいんだかわかりずらいんだかわからない感じです。
コントローラでファサードのDBを呼び出します。

use Illuminate\Support\Facades\DB;

全レコード取得

DBクラスのtableメソットを使うという感じです。取得の際にはget()。

$users = DB::table('users')->get();

条件文 where

メソッドチェーンでつなげるだけ。

$users = DB::table('users')->where('name','foo')->get();

AND 検索

where()をつなげるだけ。

$users = DB::table('users')->where('id',100)->where('name','foo')->get();

ちなみに値の大小の比較は、

where('id',100)   *これはイコール(=)と同じ意味っぽい。
where('id','<',100)
where('id','>',100)
where('id','<=',100)
where('id','>=',100)
where('id','=',100)

こんな感じですか。

OR 検索

orWhere()を使います。

$users = DB::table('users')->where('id',100)->orWhere('name','foo')->get();

Between

idが1から100の間。

$users = DB::table('users')->whereBetween('id', [1, 100])->get();

## whereIn | whereNotIn

idが1,5,7のレコードを抽出する。

->whereIn('id', [1, 5, 7])->get();

idが1,5,7ではないレコードを抽出する。

->whereNotIn('id', [1, 5, 7])->get();
Last update: 2018.02.04 (日)