Laravel-多条件检索方案

控制器

 

public function index(Request $request)
    {
        $status = $request->input('status');
        $title = $request->input('title');
        $cate_id = $request->input('cate_id');
        $where = [];
        if(!empty($status)){
            $where['status'] = $status;
        }
        if(!empty($cate_id)){
            $where['cate_id'] = $cate_id;
        }
        if(!empty($title)){
            $where['title'] = $title;
        }
        $data = ArticleModel::page($where);
        return view('article.index',compact('data'));
    }

模型层

public static function page($where){
        $model = new self();
        if(isset($where['title'])){
            $model = $model->where('title','like','%'.$where['title'].'%');
        }
        if(isset($where['cate_id'])){
            $model = $model->where('cate_id',$where['cate_id']);;
        }
        if(isset($where['status'])){
            $model = $model->where('status',$where['status']);;
        }
        $data = $model->orderBy('id','desc')
            ->paginate(self::SIZE);
        return $data;

        //onlyTrashed 只要被软删除的数据
        //withTrashed 包含回收站的数据
        //不包括回收站的内容
    }

 

posted @ 2021-07-07 15:23  青烟绕指柔  阅读(218)  评论(0编辑  收藏  举报