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

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

DDD
Freigeben: 2024-11-15 01:31:02
Original
838 Leute haben es durchsucht

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);
Nach dem Login kopieren

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]);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage