Laravel whereBetween in two columns

时间:2018-01-30 12:23:08

标签: php laravel-5 eloquent

我需要通过whereBetween从数据库中选择产品。 我在数据库中有两个double类型的列,pricenewpricePrice字段是必填字段,newprice默认为0。如果该产品有任何折扣,管理员会写newprice

现在我的问题是,我需要从whereBetween price newprice == 0 newpricenewprice != 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);

它无法正常工作。有任何想法吗?

1 个答案:

答案 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);