监听ORM背后的sql语句。

把它放在routes.php文件中:

\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {

    echo'<pre>';

    var_dump($query->sql);

    var_dump($query->bindings);

    var_dump($query->time);

    echo'</pre>';

});

由msurguy提交,此页面中的源代码。您将在注释中找到laravel 5.2的此修复代码。

效果图如下:

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

这样直观点

$sql = vsprintf(str_replace('?', '%s', $query->sql), $query->bindings);
3年前 评论
Richard852555 (楼主) 3年前
Richard852555 (楼主) 3年前
OnlyRed (作者) 3年前
Richard852555 (楼主) 3年前

vsprintf ,有模糊查询时会有问题 可以使用:

use Illuminate\Support\Str;

Str::replaceArray('?', $query->bindings, $query->sql);
3年前 评论
OnlyRed 3年前

都是高手,会玩

3年前 评论

代码放到AppServiceProvider.php文件中要好一些

3年前 评论

laravel 的哲学是你不需要关注具体的 sql 语句

3年前 评论
Richard852555 (楼主) 3年前
tu6ge-php (作者) 3年前
Richard852555 (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!