Laravel用DB自带的getQueryLog方法直接打印SQL语句
\DB::connection()->enableQueryLog();
$sqllog = \DB::getQueryLog();
dd($sqllog);
完整示例:
use App\TestModel;
class TestController extends Controller
{
public function Test() {
\DB::connection()->enableQueryLog(); // 开启
$list = TestModel::where('name', '=', 'xiaoming')->all();
$sqllog = \DB::getQueryLog(); // 获取日志
dd($sqllog); // 打印
}
}
返回结果
array(1) {
[0]=> array(3) {
["query"]=> string(28) "select * from `test` where name = 'xiaoming'"
["bindings"]=> array(0) { }
["time"]=> 2021-02-22
}
}