Laravel 获取数据库查询语句

Posted 编程新一

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 获取数据库查询语句相关的知识,希望对你有一定的参考价值。

在使用 Laravel 的时候,很多时候我们想知道背后执行的数据库查询语句是什么。 这个其实可以有一个很简单的方法:

app\Providers\AppServiceProvider 里面:

 
   
   
 
  1. public function boot()

  2.    {

  3.        if ( $this->app->environment() === 'local' ) {

  4.           \Log::info(\DB::getQueryLog());

  5.        }

  6.    }

如果没有效果的话,记得在代码前面执行 DB::enableQueryLog()。在使用 tinker 的情况下也是可以的:

 
   
   
 
  1. php artisan tinker

  2. Psy Shell v0.7.0 (PHP 7.0.4-7+deb.sury.org~wily+2 cli) by Justin Hileman

  3. >>> DB::enableQueryLog();

  4. => null

  5. >>> App\User::all();

  6. => Illuminate\Database\Eloquent\Collection {#771

  7.     all: [

  8.       App\User {#777

  9.         ...

  10.       },

  11.       App\User {#778

  12.         ...

  13.       },

  14.       ...

  15.     ],

  16.   }

  17. >>> DB::getQueryLog();

  18. => [

  19.     [

  20.       "query" => "select * from "users"",

  21.       "bindings" => [],

  22.       "time" => 0.32,

  23.     ],

  24.   ]

主要在 tinker 最开始的时候执行 DB::enableQueryLog() ,然后你执行完数据库查询后,就可以使用 DB::getQueryLog() 查看了

如果你只是想看效果的话,非常推荐大家可以用 tinker 来试试。


以上是关于Laravel 获取数据库查询语句的主要内容,如果未能解决你的问题,请参考以下文章

laravel-model实现复杂的查询语句

laravel-model实现复杂的查询语句

laravel怎么在连接查询中执行sql语句

laravel查询语句指定索引(强制索引)

Laravel 5.8 有条件地插入 sql 片段

laravel多条件语句查询