pagination; } public function getData($model,$where,$orderby) { // 预查询,此时还没有执行。where()条件查询、orderBy()排序等都应该放在这里 $query = $model->find()->where($where)->orderBy($orderby); // 获取能够查询到的数据条目数量(这就是条件查询等语句要放在上一行代码的原因),但是还没有执行查询 $count = $query->count(); // 构造分页对象 $this->pagination = new Pagination(['totalCount'=>$count,'defaultPageSize' => 12]); // 使用分页对象填充limit语句,并获得数据(此时才真正执行数据库查询) return $query->offset($this->pagination->offset) ->limit($this->pagination->limit) ->asArray() ->all(); } }