监听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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5

这样直观点

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

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

use Illuminate\Support\Str;

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

都是高手,会玩

4年前 评论

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

4年前 评论

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

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

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