Heim  >  Artikel  >  Datenbank  >  So binden Sie Parameter in Laravel Raw-Abfragen mit einem Modell

So binden Sie Parameter in Laravel Raw-Abfragen mit einem Modell

DDD
DDDOriginal
2024-11-15 01:31:02744Durchsuche

How to Bind Parameters in Laravel Raw Queries with a Model

Bindungsparameter in Laravel-Rohabfragen mit einem Modell

In Laravel kann das Binden von Parametern an Roh-DB-Abfragen, die für Modelle verwendet werden, schwierig sein. Hier ist jedoch eine Problemumgehung, die helfen kann:

Problem:

Die folgende Abfrage schlägt aufgrund gemischter benannter und positioneller Parameter mit dem Fehler „Ungültige Parameternummer“ fehl:

$query = DB::raw("... :lat, :lng, (calc) AS ...")->having("calc", "<", :radius);

Lösung:

Verwenden Sie die Methode setBindings(), um die Abfragebindungen manuell festzulegen und so das Problem der gemischten Parameter zu überschreiben:

$query = DB::raw("... ?, ?, (calc) AS ...")->having("calc", "<", "?");
$query->setBindings([$lat, $lng, $radius]);

Erklärung:

Die DB::raw()-Anweisung verwendet Fragezeichen als Positionsparameter, sodass Sie sie mithilfe von setBindings() anstelle benannter Bindungen festlegen können. Mit diesem Ansatz können Sie die fließende Benutzeroberfläche des Abfrage-Generators verwenden, ohne sich Gedanken über das Mischen von Parametern machen zu müssen.

Das obige ist der detaillierte Inhalt vonSo binden Sie Parameter in Laravel Raw-Abfragen mit einem Modell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn