45 lines
1.3 KiB
PHP
Executable File
45 lines
1.3 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* @Author: fm453
|
|
* @Date: 2018-11-21 04:18:24
|
|
* @Last Modified by: fm453
|
|
* @Last Modified time: 2019-10-07 17:16:03
|
|
* @Email: fm453@lukegzs.com
|
|
*/
|
|
|
|
namespace common\components;
|
|
use Yii;
|
|
use yii\data\Pagination;
|
|
use yii\widgets\ActiveForm;
|
|
|
|
class Attachment extends ActiveForm
|
|
{
|
|
|
|
/*处理分页*/
|
|
private $pagination;
|
|
/**
|
|
* 获取$pagination,提供给外部代码调用
|
|
* @return mixed
|
|
*/
|
|
public function getPagination()
|
|
{
|
|
return $this->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();
|
|
}
|
|
|
|
}
|