我需要通过whereBetween
从数据库中选择产品。
我在数据库中有两个double
类型的列,price
和newprice
。
Price
字段是必填字段,newprice
默认为0。如果该产品有任何折扣,管理员会写newprice
。
现在我的问题是,我需要从whereBetween
price
newprice == 0
newprice
和newprice != 0
newprice
选择数据库。
如果是price
,则按newprice
进行字词过滤;如果$from = (int)$request->priceFrom;
$to = (int)$request->priceTo;
$products = Product::whereIn('category_id', $childCategories)->orWhere('category_id', $category->id)->where('publish', 1)->orderBy('created_at', 'desc');
$products->whereBetween('price',array($from,$to))->orWhereBetween('newprice',array($from,$to));
$products = $products->paginate(15);
默认为0,则按Tampermonkey
过滤。
这是我的代码。
> setTimeout(function (){
>
> document.querySelector('[value="Click"]').click();
>
> }, 999);
它无法正常工作。有任何想法吗?
答案 0 :(得分:1)
你可以使用laravels参数分组来做这样的事情
$products->where(function($query){
$query->where('new_price', 0)
->whereBetween('price', [$from, $to]);
})->orWhere(function($query){
$query->where('new_price', '>', 0)
->whereBetween('new_price', [$from, $to]);
})->paginate(15);