將Laravel 原始查詢中的參數與模型綁定
在Laravel 中,將參數綁定到模型上使用的原始資料庫查詢可能會很棘手。但是,這裡有一個可以幫助的解決方法:
問題:
由於混合命名和位置,以下查詢失敗並出現「無效參數號碼」錯誤參數:
$query = DB::raw("... :lat, :lng, (calc) AS ...")->having("calc", "<", :radius);
解:
利用setBindings() 方法手動設定查詢綁定,覆寫混合參數問題:
$query = DB::raw("... ?, ?, (calc) AS ...")->having("calc", "<", "?"); $query->setBindings([$lat, $lng, $radius]);
解釋:
DB::raw() 語句使用問號作為位置參數,允許您使用setBindings() 來設定它們命名綁定。這種方法允許您使用查詢產生器的流暢介面,而無需擔心參數混合。
以上是如何將 Laravel 原始查詢中的參數與模型綁定的詳細內容。更多資訊請關注PHP中文網其他相關文章!