无涯教程-Laravel 8 - 获取SQL语句

62 阅读1分钟

这个教程简单的演示了Laravel 8中获取上次执行的SQL语句。将使用toSql(),DB ::enableQueryLog()和DB ::getQueryLog()在laravel 8中打印最后一个SQL查询。

因此,让无涯教程看看下面的示例,并根据需要使用它们。

toSQL示例1:

控制器代码:

<?php

namespace App\Http\Controllers;

use App\Models\User;

class UserController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function redirectToGoogle()

{

$query = User::select("*")->toSql();

dd($query);

}

}

输出:

select * from `users`

DB:enableQueryLog示例2:

控制器代码:

<?php

namespace App\Http\Controllers;

use App\Models\User;

use DB;

class UserController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function redirectToGoogle()

{

DB::enableQueryLog();

$users = User::select("*")->get();

$quries = DB::getQueryLog();

dd($quries);

}

}

输出:

array:1 [▼

0 => array:3 [▼

"query" => "select * from `users`"

"bindings" => []

"time" => 4.25

]

]

DB::getQueryLog示例3:

控制器代码:

<?php

namespace App\Http\Controllers;

use App\Models\User;

use DB;

class UserController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function redirectToGoogle()

{

DB::enableQueryLog();

$users = User::select("*")->get();

$query = DB::getQueryLog();

$query = end($query);

dd($query);

}

}

输出:

array:3 [▼

"query" => "select * from `users`"

"bindings" => []

"time" => 2.07

]

参考链接

www.learnfk.com/laravel/how…