Class yii\data\Pagination

继承yii\data\Pagination » yii\base\BaseObject
实现yii\base\Configurable, yii\web\Linkable
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/data/Pagination.php

Pagination 表示与数据项的分页有关的信息.

当数据需要在多个页面中呈现时, 分页可用于来表示诸如 总项目数, 每页项目数, 当前页码 等信息.

这些信息可以传递给 pagers 来渲染分页按钮或链接.

以下示例显示如何创建分页对象并将其提供给分页条.

Controller action:

public function actionIndex()
{
    $query = Article::find()->where(['status' => 1]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'pages' => $pages,
    ]);
}

View:

foreach ($models as $model) {
    // display $model here
}

// display pagination
echo LinkPager::widget([
    'pagination' => $pages,
]);

有关 Pagination 的更多详细信息和使用信息, 请参阅 权威指南 - 显示数据 - 分页(Pagination).

公共属性

隐藏继承的属性

属性类型描述定义在
$defaultPageSize integer 默认的页面大小. yii\data\Pagination
$forcePageParam boolean 是否始终在由 createUrl() 创建的 URL 中包含 $page 参数. yii\data\Pagination
$limit integer 数据的限制. 这可用于为获取当前页面数据的 SQL 语句设置 LIMIT 值. 请注意, 如果页面大小是无限的, 则将返回值-1. 该属性是只读的. yii\data\Pagination
$offset integer 数据的偏移量. 这可用于为获取当前页面数据的 SQL 语句设置 OFFSET 值. 该属性是只读的. yii\data\Pagination
$page integer 0开始的当前页码. yii\data\Pagination
$pageCount integer 总页数. 该属性是只读的. yii\data\Pagination
$pageParam string 存储当前页面索引的参数名称. yii\data\Pagination
$pageSize integer 每页的项目数量. 如果小于1, 则表示页面大小是无限的, 因此单个页面包含所有项目. yii\data\Pagination
$pageSizeLimit array|false 页面大小限制. yii\data\Pagination
$pageSizeParam string 存储页面大小的参数名称. yii\data\Pagination
$params array 用于获取当前页码并创建新的分页 URL 的参数(name => value). yii\data\Pagination
$route string 用于显示分页内容的控制器动作的路由. yii\data\Pagination
$totalCount integer 项目总数. yii\data\Pagination
$urlManager yii\web\UrlManager 用于创建分页 URL 的 URL 管理器. yii\data\Pagination
$validatePage boolean 是否检查 $page 是否在有效范围内. yii\data\Pagination

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
createUrl() 使用指定的页码创建适合分页的 URL. yii\data\Pagination
getLimit() 返回数据的限制. yii\data\Pagination
getLinks() 返回一组用于导航到第一页(first), 最后一页(last), 下一页(next)和上一页(previous)的链接. yii\data\Pagination
getOffset() 返回数据的偏移量. yii\data\Pagination
getPage() 返回从0开始的当前页码. yii\data\Pagination
getPageCount() 返回总页数. yii\data\Pagination
getPageSize() 返回每页的项目数量. yii\data\Pagination
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject
setPage() 设置当前页码. yii\data\Pagination
setPageSize() 设置每页的项目数量. yii\data\Pagination

受保护的方法

隐藏继承的方法

方法描述定义在
getQueryParam() 返回指定查询参数的值. yii\data\Pagination

常量

隐藏继承的常量

常量描述定义在

属性详情

$defaultPageSize public 属性

默认的页面大小.

当无法由 $params 中的 $pageSizeParam 确定页面大小时, 此属性将由 $pageSize 返回.

$forcePageParam public 属性

是否始终在由 createUrl() 创建的 URL 中包含 $page 参数.

如果为false$page0, 则 $page 参数将不会放入 URL 中.

public boolean $forcePageParam true
$limit public 属性

数据的限制. 这可用于为获取当前页面数据的 SQL 语句设置 LIMIT 值. 请注意, 如果页面大小是无限的, 则将返回值-1. 该属性是只读的.

public integer $limit null

用于导航目的的链接. 数组键指定链接的用途(eg. LINK_FIRST), 数组值是相应的 URL. 该属性是只读的.

public array $links null
$offset public 属性

数据的偏移量. 这可用于为获取当前页面数据的 SQL 语句设置 OFFSET 值. 该属性是只读的.

public integer $offset null
$page public 属性

0开始的当前页码.

public integer $page null
$pageCount public 属性

总页数. 该属性是只读的.

public integer $pageCount null
$pageParam public 属性

存储当前页面索引的参数名称.

参见 $params.

public string $pageParam 'page'
$pageSize public 属性

每页的项目数量. 如果小于1, 则表示页面大小是无限的, 因此单个页面包含所有项目.

public integer $pageSize null
$pageSizeLimit public 属性

页面大小限制. 第一个数组元素表示最小页面大小, 第二个数字表示最大页面大小.

如果为false, 则表示 $pageSize 应始终返回 $defaultPageSize 的值.

public array|false $pageSizeLimit = [150]
$pageSizeParam public 属性

存储页面大小的参数名称.

参见 $params.

public string $pageSizeParam 'per-page'
$params public 属性

用于获取当前页码并创建新的分页 URL 的参数(name => value).

如果未设置, 则将使用$_GET中的所有参数.

为了向所有链接添加散列, 请使用array_merge($_GET, ['#' => 'my-hash']).

$pageParam 索引的数组元素被认为是当前页码(默认为0); 而由 $pageSizeParam 索引的元素则被视为页面大小(默认为 $defaultPageSize).

public array $params null
$route public 属性

用于显示分页内容的控制器动作的路由.

如果未设置,则表示使用当前请求的路由.

public string $route null
$totalCount public 属性

项目总数.

public integer $totalCount 0
$urlManager public 属性

用于创建分页 URL 的 URL 管理器.

如果未设置, 将使用应用程序urlManager组件.

$validatePage public 属性

是否检查 $page 是否在有效范围内.

当该属性为true时, $page 的值将始终在0([[pageCount]]-1)之间.

由于 $pageCount 依赖于正确的 $totalCount 值, 在某些情况下(eg. MongoDB)可能不可用, 因此你可能需要将此属性设置为false以禁用页码验证.

这样, $page 将返回由 $params 中的 $pageParam 索引的值.

public boolean $validatePage true

方法详情

createUrl() public 方法

使用指定的页码创建适合分页的 URL.

在创建用于执行分页的 URL 时, 此方法主要由分页条调用.

参见:

public string createUrl ( $page, $pageSize null, $absolute false )
$page integer

该 URL 应指向的从0开始的页码.

$pageSize integer

每页上的项目数量. 如果未设置, 将使用 $pageSize 的值.

$absolute boolean

是否创建绝对 URL. 默认为false.

return string

创建的URL.

getLimit() public 方法

返回数据的限制.

public integer getLimit ( )
return integer

数据的限制. 这可用于为获取当前数据页的 SQL 语句设置 LIMIT 值.

Note: 如果页面大小是无限的, 则会返回值-1.

getLinks() public 方法

返回一组用于导航到第一页(first), 最后一页(last), 下一页(next)和上一页(previous)的链接.

public array getLinks ( $absolute false )
$absolute boolean

生成的 URL 是否应该是绝对的.

return array

用于导航目的的链接. 数组键指定链接的用途(eg. LINK_FIRST), 数组值是相应的 URL.

getOffset() public 方法

返回数据的偏移量.

public integer getOffset ( )
return integer

数据的偏移量. 这可用于为获取当前数据页的 SQL 语句设置 OFFSET 值.

getPage() public 方法

返回从0开始的当前页码.

public integer getPage ( $recalculate false )
$recalculate boolean

是否根据页面大小和项目数重新计算当前页面.

return integer

0开始的当前页码.

getPageCount() public 方法

返回总页数.

public integer getPageCount ( )
return integer

总页数.

getPageSize() public 方法

返回每页的项目数量.

默认情况下, 此方法将尝试通过 $params 中的 $pageSizeParam 确定页面大小. 如果无法以此方式确定页面大小, 则将返回 $defaultPageSize.

参见 $pageSizeLimit.

public integer getPageSize ( )
return integer

每页的项目数量. 如果小于1, 则表示页面大小是无限的, 因此单个页面包含所有项目.

getQueryParam() protected 方法

返回指定查询参数的值.

此方法从 $params 返回指定的参数值. 如果该值不存在, 则返回null.

protected string getQueryParam ( $name, $defaultValue null )
$name string

参数名称.

$defaultValue string

$params 中指定的参数不存在时要返回的值.

return string

参数的值.

setPage() public 方法

设置当前页码.

public void setPage ( $value, $validatePage false )
$value integer

当前页码从0开始的索引.

$validatePage boolean

是否验证页码.

Note: 为了验证页码, $validatePage 和此参数都必须为true.

setPageSize() public 方法

设置每页的项目数量.

public void setPageSize ( $value, $validatePageSize false )
$value integer

每页的项目数量.

$validatePageSize boolean

是否验证页面大小..