以下查询打印了用户数表和我给出的echo语句。想知道为什么它不按照documentation所说的那样打印sql查询。
$count = DB::table('users')->count();
echo $count;
DB::listen(function($query){
echo $query->sql;
});
echo 'End of the script';
答案 0 :(得分:1)
正如您在official docs中看到的那样,您需要在Database
Service provider
听众
如果您希望接收应用程序执行的每个SQL查询,可以使用listen方法。此方法对于记录查询或调试很有用。 您可以在服务提供商中注册查询侦听器
所以将DB::listen
放在boot
的{{1}}方法中,然后AppServiceProvider
修改强>
使用echo
是不正确的,因为\DB::listen
外观的名称空间不在DB
内或App\Http\ServiceProviders\
的名称空间内,而是AppServiceProvider
}。
请将Illuminate\Support\Facades\
更改为\DB::listen
或将Illuminate\Support\Facades\DB::listen
添加到use Illuminate\Support\Facades\DB;
的顶部,然后Service Provider
或如果您拥有DB::listen
已在aliases
内config/app.php
内注册,您可以use DB;