将 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中文网其他相关文章!