Liaison de paramètres dans les requêtes brutes Laravel avec un modèle
Dans Laravel, lier des paramètres aux requêtes brutes de base de données utilisées sur les modèles peut être délicat. Cependant, voici une solution de contournement qui peut aider :
Problème :
La requête suivante échoue avec une erreur « Numéro de paramètre non valide » en raison de paramètres nommés et positionnels mixtes :
$query = DB::raw("... :lat, :lng, (calc) AS ...")->having("calc", "<", :radius);
Solution :
Utiliser le Méthode setBindings() pour définir manuellement les liaisons de requête, en remplaçant le problème des paramètres mixtes :
$query = DB::raw("... ?, ?, (calc) AS ...")->having("calc", "<", "?"); $query->setBindings([$lat, $lng, $radius]);
Explication :
L'instruction DB::raw() utilise la question marques comme paramètres de position, vous permettant de les définir en utilisant setBindings() au lieu de liaisons nommées. Cette approche vous permet d'utiliser l'interface fluide du générateur de requêtes sans vous soucier du mélange des paramètres.
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!