laravel数组分页

控制器

public function getLifelist(Request $request)
    {
        $life_cid = session('lifeid');
        $type=$request->input('type')?$request->input('type'):'deal_time';
        $desc=$request->input('desc')?$request->input('desc'):'desc';
        $status = $request->input('status')?$request->input('status'):0;

        if ($request->has('keywords')) {
           $keywords = $request->input('keywords');
           $key = $request->input('key');
        } else {
           $keywords = '';
           $key ='deal_ordernum';
        }
        $count=[0=>0,1=>0,2=>0,3=>0];
        $life = DB::table('life')->where('life_cid',$life_cid)->select('life_id','life_title')->get();
        foreach ($life as $k => $v) {
            if ($status == 0) {
                $life_deal = DB::table('life_deal')->where('deal_fid',$v->life_id)->get();
            } else if ($status==1) {
                $life_deal = DB::table('life_deal')
                    ->where('deal_fid',$v->life_id)
                    ->where('deal_evaluate',0)
                    ->where('deal_status',3)
                    ->where($key,'like','%'.$keywords.'%')
                    ->orderby($type,$desc)
                    ->get();
            } else {
                $life_deal = DB::table('life_deal')
                    ->where('deal_fid',$v->life_id)
                    ->where('deal_status',2)
                    ->where($key,'like','%'.$keywords.'%')
                    ->orderby($type,$desc)
                    ->get();
            }
            foreach ($life_deal as $kk => $value) {
                $value->life_title = $v->life_title;
                $value->deal_time = date('Y-m-d H:i:s',$value->deal_time);
                $arr[] = $value;
            }
            $count[0]+=DB::table('life_deal')->where('deal_fid',$v->life_id)->where('deal_status','!=',1)->count();
            $count[1]+=DB::table('life_deal')->where('deal_fid',$v->life_id)->where('deal_status',3)->count();
            $count[2]+=DB::table('life_deal')->where('deal_fid',$v->life_id)->where('deal_status',2)->count();
            $count[3]+=DB::table('life_deal')->where('deal_fid',$v->life_id)->where('deal_status',3)->count();
        }
        $perPage = 5;
        if ($request->has('page')) {
            $current_page = $request->input('page');
            $current_page = $current_page <= 0 ? 1 :$current_page;
        } else {
            $current_page = 1;
        }
        $item = array_slice($arr, ($current_page-1)*$perPage, $perPage); //注释1
        $total = count($arr);
        $paginator =new LengthAwarePaginator($item, $total, $perPage, $current_page, [
                'path' => Paginator::resolveCurrentPath(),  //注释2
                'pageName' => 'page',
        ]);

        $data=$request->except('data');
        $res = $paginator->toArray()['data'];
       
        return view('lifeadmin.serve.LifeOrder',compact('data','paginator','res','status','type','desc','count'));
    }

分页方法

{!! $paginator->appends($data)->render() !!}

posted @ 2017-09-22 21:21  罪恩徒斯  阅读(485)  评论(0)    收藏  举报