如何使用Laravel查询生成器或Eloquent ORM在Laravel 3/4中检索原始执行的SQL查询?

例如,如下所示:

DB::table('users')->where_status(1)->get();

或者:

(posts (id, user_id, ...))

User::find(1)->posts->get();

否则,至少我该如何将执行的所有查询保存到laravel.日志(log)

推荐答案

Laravel 4+

Note for Laravel 5 users:在执行查询之前,您需要拨打DB::enableQueryLog().或者就在运行查询的行的上方,或者在中间件内部.

在Laravel 4及更高版本中,您必须拨打DB::getQueryLog()才能获得所有已运行的查询.

$queries = DB::getQueryLog();
$last_query = end($queries);

或者,您可以下载一个分析器软件包.我推荐barryvdh/laravel-debugbar个,挺不错的.您可以阅读有关如何在其repository中安装的说明.


Laravel 3

在Laravel3中,您可以从调用DB类的静态方法last_queryEloquent模型中获取最后执行的查询.

DB::last_query();

但是,这需要您在application/config/database.php中启用profiler选项.或者,正如@dued提到的,您可以在application/config/application.php或呼叫DB::profile()中启用profiler选项,以获取当前请求中运行的所有查询及其执行时间.

Php相关问答推荐

Woocommerce经常一起购买(添加到购物车)按钮重命名

如何在不打开页面的情况下制作收件箱

使用额外的输入字段自定义WooCommerce单个产品

基于验证动态更改输入字段类(名称密码)&

从产品中获取WooCommerce产品属性单选按钮的列表WP_Query

PHP日期操作,将多个日期输出为格式化字符串

多行PHP属性声明中是否允许单行注释

有没有办法为整个PHP应用程序启用严格类型

这是在可召回的背景下吗?

Laravel服务Provider 没有向服务类注入价值

按列值将二维数组排序为不超过N个的递增组

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

显示 woocommerce 中所选变体的属性术语描述

需要以一种形式执行两个操作

WordPress 分页无法正常工作

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

Symfony 迁移判断器在我的工作中失控

PHP 日期格式:ISO8601 与 ISO8601_EXPANDED

使用 RSA 2048 公钥验证 RSA PKCS#1v1.5 SHA 256 签名

如何在字符串constant-string-NUMBER-*中获取 NUMBER?