我有一个主要查询,它将以下列方式运行。我必须检查一个条件,如果条件满足,它将添加一个包含现有查询的语句。但它不能以正确的方式工作意味着我无法使用现有的orderby函数运行?为什么要或如何解决这个问题?
$query = DB::table('users')
->join('products','products.auth_id','users.id')
->Join('reviews','products.id','reviews.product_id')
->select('products.*','users.avatar',DB::raw('(sum(rating)/count(user_id)) as rating'))
->where('products.status','=','1')
->groupBy('products.id')
->latest();
if($request->get('dropdown')!='0' && $request->get('dropdown')=='desc')
{
$query->orderBy('products.regular_price', 'desc') ;
}
$products = $query->get();
答案 0 :(得分:0)
试试这个
if($request->get('dropdown')!='0' && $request->get('dropdown')=='desc')
{
$query = $query->orderBy('products.regular_price', 'desc') ;
}
注意:您在查询中添加了latest()
函数。此功能在您的查询中添加了以下内容
ORDER BY created_at DESC
latest()
的默认参数为created_at