توی لاراول، اگه یک کوئری الوکوئنت یا کوئریبیلدر داریم، چطوری میتونیم خروجی SQL اون رو بدست بیاریم؟ 🤔
برای این کار، از دو روش میتونیم استفاده کنیم:
روش اول:
\DB::enableQueryLog(); User::all(); dd(\DB::getQueryLog());
توی این روش ابتدا و قبل از هر کوئریای، باید لاگ رو فعال کنیم (خط اول). بعد از اون، هر کوئری که زده میشه با متد getQueryLog قابل مشاهده هست.
روش دوم: متد toSql
$query = \DB::table('users')->where('id', '<>' , 29)->limit(5)->toSql(); dd($query); // "select * from `users` where `id` <> ? limit 5"
استفاده از این متد برای زمانی خوبه که نمیخوایم درخواست ما بطور واقعی اجرا بشه و فقط میخوایم خروجی خام SQL رو ببینیم.
برای اطلاعات بیشتر پیشنهاد میکنم سوال ۳۰ از سوالات مصاحبه لاراول رو ببینید:
