【问题标题】:How Do I Figure Out What The Query Is In Eloquent?我如何弄清楚 Eloquent 中的查询是什么?
【发布时间】:2014-02-01 16:52:31
【问题描述】:

考虑将 Laravel 与 Eloquent 一起使用,但我知道,考虑到我们的网站,我们最终需要问:“那么 Eloquent 实际生成的原始 SQL 查询是什么?”所以我们可以对该查询进行故障排除,看看出了什么问题……我在文档中看不到该信息。

那么我们如何提取 Eloquent 生成的查询呢?

【问题讨论】:

标签: mysql laravel eloquent


【解决方案1】:

最快的方法是将它添加到您的路由、控制器操作甚至 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 为您提供了一个非常漂亮的应用程序分析视图。

【讨论】:

  • 但是有没有办法记录一个特定的查询?这看起来令人怀疑是全球性的,我们将有数千人在运行。一般来说,我们只想看到死亡页面上的那个。 (或者最好让它在 DEV 服务器的某个地方回显。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 2018-12-25
相关资源
最近更新 更多