微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 获取Laravel 3/4中执行的查询

如何使用Laravel Query Builder或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

在Laravel 4及更高版本中,您必须调用DB :: getQueryLog()来获取所有运行的查询.

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

或者您可以下载分析器包.我推荐barryvdh/laravel-debugbar,非常整洁.您可以阅读有关如何在其repository中安装的说明.

Laravel 5用户注意事项:在执行查询之前,您需要调用DB :: enableQueryLog().在运行查询的行上方或在中间件内.

Laravel 3

在Laravel 3中,您可以从Eloquent模型中获取后执行查询,该模型在DB类上调用静态方法last_query.

DB::last_query();

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐