Laravel Eloquent:获取模型查询生成的 SQL 语句
在Laravel中,你可以使用DB类的enableQueryLog
方法来启用查询日志,然后使用getQueryLog
方法来获取日志中的查询语句。以下是一个示例:
use Illuminate\Support\Facades\DB;
// 启用查询日志
DB::enableQueryLog();
// 执行你的Eloquent查询
$users = App\Models\User::where('name', 'John')->get();
// 获取查询日志
$queryLog = DB::getQueryLog();
// 打印查询日志
foreach ($queryLog as $log) {
print_r([
'query' => $log['query'],
'bindings' => $log['bindings'],
'time' => $log['time'],
]);
}
请注意,这种方法会捕获所有通过DB门面执行的查询,包括Eloquent模型保存、删除等操作产生的SQL语句。如果你只想获取特定模型的查询语句,你可能需要在模型查询执行前后使用上述方法。
评论已关闭