Example :
$products = Product::where(function($q)use($name,$cat_id,$user_id,$date,$status){
if($date)
{
$q->where(‘created_at’,’LIKE’,”%$date%”);
}
if($status)
{
$q->where(‘status’,$status);
}
if(count($cat_id)){
$q->whereHas(‘category’,
function($q) use ($cat_id)
{
$q->whereIn(‘id’, $cat_id );
}
);
}
elseif(count($user_id)){
$q->whereHas(‘user’,
function($q) use ($user_id)
{
$q->whereIn(‘id’, $user_id );
}
);
}
elseif ($name) {
$q->where(‘name’,’LIKE’,”%$name%”);
}
})->paginate(15);
}else{
$products = $query->paginate(15);