laravel监听DB所有的sql输出

发布时间:2020-11-23 23:10:42 阅读:1350次

我们在用laravel 操作数库时

经常需要调试sql语句的输出

有没有办法监听所有的sql,同时输出到日志中,方便查看

在App/Providers/ 目录下有一个 AppServiceProvider.php , 在里面的register 方法上,添加 下面代码:

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider {
  /**
   * Register any application services.
   *
   * @return void
   */
  public function register() {
    //
    \DB::listen(function ($query) {
      $sql=$query->sql;
      $bindings=$query->bindings;
      $time=$query->time;
      \Log::debug(json_encode($query));
      \Log::debug(var_export(compact('sql','bindings','time'),true));
    });
  }
  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  public function boot() {
    //
  }
}

通过上面的配置,就可以在storage/logs/ 的日志中,查看sql语句的输出情况了。

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel监听DB所有的sql输出 出自老鄢博客 | 欢迎分享