where('id', 1)->toSql(); l'instruction est : sélectionnez * dans ...."/> where('id', 1)->toSql(); l'instruction est : sélectionnez * dans ....">
Par défaut, les paramètres dans le sql obtenu par toSql sont remplacés par "?", comme suit :
DB::table('user')->where('id', 1)->toSql();
L'instruction sql obtenue est :
select * from `tb_user` where `id` = ?
Parfois, nous souhaitons obtenir des instructions spécifiques, nous pouvons utiliser la méthode getBindings du constructeur :
$builder = DB::table('user')->where('id', 1); $bindings = $builder->getBindings(); $sql = str_replace('?', '%s', $builder->toSql()); $sql = sprintf($sql, ...$bindings); dd($sql);
L'instruction SQL obtenue est :
select * from `tb_user` where `id` = 1
Si vous l'utilisez fréquemment, vous pouvez envisager d'utiliser le Builder La méthode macro est ajoutée au Builder :
\Illuminate\Database\Query\Builder::macro('sql', function () { $bindings = $this->getBindings(); $sql = str_replace('?', '%s', $this->toSql()); return sprintf($sql, ...$bindings); }); dd(DB::table('user')->where('id', 1)->sql());
Pour des articles plus techniques liés au framework laravel, veuillez visiter la colonne tutoriel laravel !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!