关于page分页与模型配合的问题是我用的不对吗

浏览:548 发布日期:2015/09/08 分类:求助交流
官方文档中给出的教程都是针对M方法的,但是M方法的使用其实是破坏了Thinkphp的分层结构的。
我之前使用的是D方法,但是这样每次在Model中获取列表的时候都会将所有的数据放到内存中,在Controller中使用时会速度非常慢,数据量再大点就提示超内存了。因为每次取数据的时候是在model中做的,而拆分页码是在Controller中做的,这样就不科学了。
那问题来了,如何在不破坏MVC结构的前提下使用分页呢?
Controller中:        $Garden = D('garden');
        $request =(array)I('request.');
        $glist = $Garden -> getList($title);
        $total  = $Garden -> count();
        $listRows = 12;
        $page =new \Think\Page($total,$listRows,$request);
        $volist = array_slice($glist,$page ->firstRow,$page ->listRows);
        $p = $page ->show();
        $this ->assign('_list',$volist);
        $this ->assign('_page',$p ? $p : '');
        Cookie('_forward',$_SERVER['REQUEST_URI']);
        $this -> display();
Model中    public function getList($garden_name){
        $Building = M('building'); 
        if($garden_name){
            $where = 'garden_name = '.$garden_name;
        }else{
            $where='1=1';
        }
        $list            =    $this->where($where) -> select();
        foreach ($list as $key => $value) {
            $list[$key]['salecount'] = $Building ->where('loupanmingcheng='.$value['id'])->count();
            
            
        }
        return $list;
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>