【发布时间】:2014-02-01 16:52:31
【问题描述】:
考虑将 Laravel 与 Eloquent 一起使用,但我知道,考虑到我们的网站,我们最终需要问:“那么 Eloquent 实际生成的原始 SQL 查询是什么?”所以我们可以对该查询进行故障排除,看看出了什么问题……我在文档中看不到该信息。
那么我们如何提取 Eloquent 生成的查询呢?
【问题讨论】:
考虑将 Laravel 与 Eloquent 一起使用,但我知道,考虑到我们的网站,我们最终需要问:“那么 Eloquent 实际生成的原始 SQL 查询是什么?”所以我们可以对该查询进行故障排除,看看出了什么问题……我在文档中看不到该信息。
那么我们如何提取 Eloquent 生成的查询呢?
【问题讨论】:
最快的方法是将它添加到您的路由、控制器操作甚至 app/start/global.php:
DB::listen(function($sql, $bindings, $time) {
Log::info($sql);
});
它会记录下来,然后你就可以
php artisan tail
查看您的查询。
如果您只需要将一个查询直接记录到页面上,几乎相同,您只需将其放在执行查询的位置即可:
DB::listen(function($sql, $bindings, $time) {
var_dump($sql);
var_dump($bindings);
});
Posts::where('title', 'My First Post')->get();
die;
它会在页面中回显它。
你也可以使用 Clockwork Chrome 扩展(https://chrome.google.com/webstore/detail/clockwork/dmggabnehkmmfmdffgajcflpdjlnoemp?hl=en),这是要安装在 Laravel 上的 PHP 包:https://github.com/itsgoingd/clockwork。
Clockwork 为您提供了一个非常漂亮的应用程序分析视图。
【讨论】: