Laravel根据不同条件编写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);
   });


博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论