我的Laravel项目上有价格过滤器滑块,我使用的是Bootstrap slider。
以下是我在视图上的输入代码
<input name="price" id="ex2" type="text" class="span2" value="" data-slider-min="10" data-slider-max="2000" data-slider-step="5" data-slider-value="[250,450]" onchange="checkBoxHandler()"/>
这是我在Javascript上的自动提交脚本
<script>
function checkBoxHandler() {
$('#color_form').submit();
}
$("#ex2").slider({});
</script>
这是我的控制器
$price = $request->price;
if (request()->has('price')) {
$products = product::whereBetween('price', [$price])
->whereHas('categories', function ($query) use ($tags){
$query->where('name', $tags);
})->paginate(20);
我收到以下错误
SQLSTATE [HY093]:无效的参数编号(SQL:选择计数(*)作为
products
的聚合,其中price
介于250,1400和游泳之间(选择*来自categories
内部联接category_product
位于categories
。id
=category_product
。category_id
其中products
。id
=category_product
。product_id
和name
=?))
答案 0 :(得分:2)
对于whereBetween,您需要传递数组。
whereBetween('price', explode(',', $price))