aravel根据不同条件编写when的使用
$map['task_id'] = $request->task_id;
$finished = $request->finished;
$isShow = $request->is_show;
$isAll = $request->is_all ? $request->is_all: 0;
$limit = $request->limit ? $request->limit : 6;
if($isShow==1) {
$finished = '';
}
$data = TableModel::where($map)
->when($finished == 2 , function ($query) use ($finished) {// 未完成
return $query->where('finished','!=','1');
})
->when($finished == 1 , function ($query) use ($finished) {// 已完成
return $query->where('finished','1');
})
->when($isShow == 1 , function ($query) use ($isShow) {//
return $query->where('read_time','=','null');
})
->select('*')
->orderBy('num', 'desc')
->with('hasUser')
->when($isAll == 1 , function ($query) use ($isAll) {// 没有分页
return $query->get();
})
->when($isAll != 1 , function ($query) use ($isAll,$limit) {// 有分页
return $query->paginate($limit);
});