Maison  >  Article  >  base de données  >  Comment lier des paramètres dans les requêtes Laravel Raw avec un modèle

Comment lier des paramètres dans les requêtes Laravel Raw avec un modèle

DDD
DDDoriginal
2024-11-15 01:31:02744parcourir

How to Bind Parameters in Laravel Raw Queries with a Model

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn