توی لاراول، اگه یک کوئری الوکوئنت یا کوئری‌بیلدر داریم، چطوری می‌تونیم خروجی 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 رو ببینیم.

برای اطلاعات بیشتر پیشنهاد می‌کنم سوال ۳۰ از سوالات مصاحبه لاراول رو ببینید: