laravel5で実際に実行されたクエリを確認する
クエリビルダやEloquentを利用する際に、実際に実行されたクエリを確認したいケースがあります。
その際はDB::enableQueryLogとDB::getQueryLogを利用して、実際に実行されたクエリを確認できます。
// 求人テーブル取得
DB::enableQueryLog();
$jobs = Job::open()->has('jobcategory')->has('treatments')->orderBy('jobcategory_id')->orderBy('updated_at')->get();
dd(DB::getQueryLog());
実行されたクエリ
array:1 [
0 => array:3 [
"query" => "select * from jobs
where webopentype
= ? and status
= ? and jobid
not in (?, ?, ?, ?, ?, ?, ?, ?) and exists (select * from jobcategories
where jobs
.jobcategory_id
= jobcategories
.id
) and exists (select * from treatments
inner join job_treatment
on treatments
.id
= job_treatment
.treatment_id
where job_treatment
.job_id
= jobs
.id
) order by jobcategory_id
asc, updated_at
asc"
"bindings" => array:10 [
0 => 1
1 => 3
2 => 24848
3 => 25556
4 => 25557
5 => 25558
6 => 25559
7 => 25677
8 => 25926
9 => 25927
]
"time" => 498.53
]
]
開発中に簡単に確かめることができますね(^^♪