use App\Order;
public function show(Order $order){
$data = $order->all();
return dd($order->getQueryLog());
Run Code Online (Sandbox Code Playgroud)
有没有办法在Laravel中显示由Eloquent构建的查询?
我试过getQueryLog();但它不起作用
kap*_*dev 38
首先,您必须启用查询日志,它可以使用
DB::connection()->enableQueryLog();
Run Code Online (Sandbox Code Playgroud)
然后你可以使用下面的代码来查看查询日志
$queries = DB::getQueryLog();
Run Code Online (Sandbox Code Playgroud)
如果你想看到最后执行的查询
$last_query = end($queries);
Run Code Online (Sandbox Code Playgroud)
要了解有关日志记录的更多信息,请参阅此https://laravel.com/docs/5.0/database#query-logging
例
public function show(Order $order){
\DB::connection()->enableQueryLog();
$data = $order->all();
$queries = \DB::getQueryLog();
return dd($queries);
}
Run Code Online (Sandbox Code Playgroud)
Muh*_*mad 30
要查看laravel.log文件中的查询日志,请使用以下方式。
namespace App\Providers;
use DB;
use Log;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
DB::listen(function($query) {
Log::info(
$query->sql,
$query->bindings,
$query->time
);
});
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
小智 6
将其写在查询 DB::enableQueryLog() 之前;
DB::enableQueryLog();
$data = $order->all();
$query = DB::getQueryLog();
dd($query);
Run Code Online (Sandbox Code Playgroud)
要使用它,getQueryLog()您需要先启用它:
DB::enableQueryLog();
DB::getQueryLog();
Run Code Online (Sandbox Code Playgroud)
如果要查看实际查询,可以使用Laravel Debugbar,它将显示在当前请求期间创建的所有Laravel实际查询。
有时->toSql()也很有用。
在5.6上工作,AppServiceProvider :: boot()中类似这样
// Log all DB SELECT statements
// @codeCoverageIgnoreStart
if (!app()->environment('testing') && config('app.log_sql')) {
DB::listen(function ($query) {
if (preg_match('/^select/', $query->sql)) {
Log::info('sql: ' . $query->sql);
// Also available are $query->bindings and $query->time.
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后在config / app.php中,就很容易启用/禁用对.env的修改
'log_sql' => env('LOG_SQL'),
Run Code Online (Sandbox Code Playgroud)
全部归功于:https : //arjunphp.com/laravel-5-5-log-eloquent-queries/
可以使用以下命令对唯一查询进行解析:
grep ") sql:" laravel.log | sed -e "s#.*select\(.*\)\[\]#select\1#" | sort -u
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34324 次 |
| 最近记录: |