监听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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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年前

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