打印 laravel 模型查询产品的 SQL

时间:2023-03-10 03:17:06
打印 laravel 模型查询产品的 SQL

1.在路由閉包打印sql

打印一段代码生产的 sql 语句,使用路由闭包做个实验

Route::get('/get-sql', function() {
DB::enableQueryLog();
$data = App\Models\BusinessProduct::Enable(1)->get();
return response()->json(DB::getQueryLog());
});

在浏览器打开:http://127.0.0.1:8000/get-sql

[
{
"query":"select * from `fook_business_product` where `enable` = ?",
"bindings":[
1
],
"time":13.02
}
]

2.在controller打印sql

2.1定義路由

Route::group(['prefix' => 'admin'], function () {
$namespacePrefix="\\App\\Http\\Controllers\\Admin\\";
Route::get('/product',['uses' => $namespacePrefix . 'BusinessProductController@index', 'as' => 'index']);
});

2.2定時model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class BusinessProduct extends Model
{
protected $table = 'fook_business_product'; /**
* 是否有效(1、有效,0、無效 )
* @author jackie <2019.01.23>
*/
public function scopeEnable($query,$enable)
{
return $query->where('enable',$enable);
} }

2.3定義controller

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use App\Models\BusinessProduct; class BusinessProductController extends Controller
{
public function index()
{
DB::enableQueryLog();
$data = BusinessProduct::Enable(1)->first();
return response()->json(DB::getQueryLog()); }
}

2.4在瀏覽器打開:http://127.0.0.1:8000/admin/product

[
{
"query":"select * from `fook_business_product` where `enable` = ? limit 1",
"bindings":[
1
],
"time":12.42
}
]