Rumah >pangkalan data >tutorial mysql >Cara Mengikat Parameter dalam Pertanyaan Mentah Laravel dengan Model

Cara Mengikat Parameter dalam Pertanyaan Mentah Laravel dengan Model

DDD
DDDasal
2024-11-15 01:31:02826semak imbas

How to Bind Parameters in Laravel Raw Queries with a Model

Parameter Mengikat dalam Pertanyaan Mentah Laravel dengan Model

Dalam Laravel, parameter mengikat pada pertanyaan DB mentah yang digunakan pada model boleh menjadi rumit. Walau bagaimanapun, berikut ialah penyelesaian yang boleh membantu:

Masalah:

Pertanyaan berikut gagal dengan ralat "Nombor parameter tidak sah" disebabkan oleh nama bercampur dan kedudukan parameter:

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

Penyelesaian:

Gunakan kaedah setBindings() untuk menetapkan pengikatan pertanyaan secara manual, mengatasi isu parameter bercampur:

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

Penjelasan:

The Pernyataan DB::raw() menggunakan tanda soal sebagai parameter kedudukan, membolehkan anda menetapkannya menggunakan setBindings() dan bukannya binding bernama. Pendekatan ini membolehkan anda menggunakan antara muka lancar pembangun pertanyaan tanpa perlu risau tentang pencampuran parameter.

Atas ialah kandungan terperinci Cara Mengikat Parameter dalam Pertanyaan Mentah Laravel dengan Model. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn