我是laravel的新手
我正忙于查询以获取组和项目(单独的模型但已链接)
我想做与不做物品相同的操作,即如果不为null,则按$sortColumn
排序,否则按description
我不确定如何在给定查询中实现用条件替换->orderBy('description', 'asc')
的情况。
return $this->model->with( [ 'items' => function($query){
$query->orderBy(\DB::raw("CASE WHEN ".$sortColumn." IS NOT NULL THEN ".$sortColumn."::text ELSE description END"));
}])
->where("hos_id",$hos_id)
->orderBy('description', 'asc')
->get();
我在想
->orderBy(\DB::raw("CASE WHEN ".$sortColumn." IS NOT NULL THEN ".$sortColumn."::text ELSE description END"));
代替
->orderBy('description', 'asc')
答案 0 :(得分:1)
我猜很简单
...
->orderBy(DB::raw('CASE WHEN ...'))
...