Class yii\data\Pagination
Inheritance | yii\data\Pagination » yii\base\Object |
---|---|
Implements | yii\base\Configurable, yii\web\Linkable |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/data/Pagination.php |
Pagination represents information relevant to pagination of data items.
When data needs to be rendered in multiple pages, Pagination can be used to represent information such as total item count, page size, current page, etc. These information can be passed to pagers to render pagination buttons or links.
The following example shows how to create a pagination object and feed it to a pager.
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,
]);
For more details and usage information on Pagination, see the guide article on pagination.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$defaultPageSize | integer | The default page size. | yii\data\Pagination |
$forcePageParam | boolean | Whether to always have the page parameter in the URL created by createUrl(). | yii\data\Pagination |
$limit | integer | The limit of the data. | yii\data\Pagination |
$links | array | The links for navigational purpose. | yii\data\Pagination |
$offset | integer | The offset of the data. | yii\data\Pagination |
$page | integer | The zero-based current page number. | yii\data\Pagination |
$pageCount | integer | Number of pages | yii\data\Pagination |
$pageParam | string | Name of the parameter storing the current page index. | yii\data\Pagination |
$pageSize | integer | The number of items per page. | yii\data\Pagination |
$pageSizeLimit | array|false | The page size limits. | yii\data\Pagination |
$pageSizeParam | string | Name of the parameter storing the page size. | yii\data\Pagination |
$params | array | Parameters (name => value) that should be used to obtain the current page number and to create new pagination URLs. | yii\data\Pagination |
$route | string | The route of the controller action for displaying the paged contents. | yii\data\Pagination |
$totalCount | integer | Total number of items. | yii\data\Pagination |
$urlManager | yii\web\UrlManager | The URL manager used for creating pagination URLs. | yii\data\Pagination |
$validatePage | boolean | Whether to check if $page is within valid range. | yii\data\Pagination |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Object |
__construct() | Constructor. | yii\base\Object |
__get() | Returns the value of an object property. | yii\base\Object |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Object |
__set() | Sets value of an object property. | yii\base\Object |
__unset() | Sets an object property to null. | yii\base\Object |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Object |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Object |
className() | Returns the fully qualified name of this class. | yii\base\Object |
createUrl() | Creates the URL suitable for pagination with the specified page number. | yii\data\Pagination |
getLimit() | yii\data\Pagination | |
getLinks() | Returns a whole set of links for navigating to the first, last, next and previous pages. | yii\data\Pagination |
getOffset() | yii\data\Pagination | |
getPage() | Returns the zero-based current page number. | yii\data\Pagination |
getPageCount() | yii\data\Pagination | |
getPageSize() | Returns the number of items per page. | yii\data\Pagination |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Object |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\Object |
init() | Initializes the object. | yii\base\Object |
setPage() | Sets the current page number. | yii\data\Pagination |
setPageSize() | yii\data\Pagination |
Protected Methods
Method | Description | Defined By |
---|---|---|
getQueryParam() | Returns the value of the specified query parameter. | yii\data\Pagination |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
LINK_FIRST | 'first' | yii\data\Pagination | |
LINK_LAST | 'last' | yii\data\Pagination | |
LINK_NEXT | 'next' | yii\data\Pagination | |
LINK_PREV | 'prev' | yii\data\Pagination |
Property Details
The default page size. This property will be returned by $pageSize when page size cannot be determined by $pageSizeParam from $params.
Whether to always have the page parameter in the URL created by createUrl(). If false and $page is 0, the page parameter will not be put in the URL.
The limit of the data. This may be used to set the LIMIT value for a SQL statement for fetching the current page of data. Note that if the page size is infinite, a value -1 will be returned.
The links for navigational purpose. The array keys specify the purpose of the links (e.g. LINK_FIRST), and the array values are the corresponding URLs.
The offset of the data. This may be used to set the OFFSET value for a SQL statement for fetching the current page of data.
The zero-based current page number.
public void setPage ( $value, $validatePage = false )
Number of pages
Name of the parameter storing the current page index.
See also $params.
The number of items per page. If it is less than 1, it means the page size is infinite, and thus a single page contains all items.
The page size limits. The first array element stands for the minimal page size, and the second the maximal page size. If this is false, it means $pageSize should always return the value of $defaultPageSize.
Name of the parameter storing the page size.
See also $params.
Parameters (name => value) that should be used to obtain the current page number and to create new pagination URLs. If not set, all parameters from $_GET will be used instead.
In order to add hash to all links use array_merge($_GET, ['#' => 'my-hash'])
.
The array element indexed by $pageParam is considered to be the current page number (defaults to 0); while the element indexed by $pageSizeParam is treated as the page size (defaults to $defaultPageSize).
The route of the controller action for displaying the paged contents. If not set, it means using the currently requested route.
Total number of items.
The URL manager used for creating pagination URLs. If not set, the "urlManager" application component will be used.
Whether to check if $page is within valid range. When this property is true, the value of $page will always be between 0 and ($pageCount-1). Because $pageCount relies on the correct value of $totalCount which may not be available in some cases (e.g. MongoDB), you may want to set this property to be false to disable the page number validation. By doing so, $page will return the value indexed by $pageParam in $params.
Method Details
Creates the URL suitable for pagination with the specified page number.
This method is mainly called by pagers when creating URLs used to perform pagination.
See also:
public string createUrl ( $page, $pageSize = null, $absolute = false ) | ||
$page | integer | The zero-based page number that the URL should point to. |
$pageSize | integer | The number of items on each page. If not set, the value of $pageSize will be used. |
$absolute | boolean | Whether to create an absolute URL. Defaults to |
return | string | The created URL |
---|
public integer getLimit ( ) | ||
return | integer | The limit of the data. This may be used to set the LIMIT value for a SQL statement for fetching the current page of data. Note that if the page size is infinite, a value -1 will be returned. |
---|
Returns a whole set of links for navigating to the first, last, next and previous pages.
public array getLinks ( $absolute = false ) | ||
$absolute | boolean | Whether the generated URLs should be absolute. |
return | array | The links for navigational purpose. The array keys specify the purpose of the links (e.g. LINK_FIRST), and the array values are the corresponding URLs. |
---|
public integer getOffset ( ) | ||
return | integer | The offset of the data. This may be used to set the OFFSET value for a SQL statement for fetching the current page of data. |
---|
Returns the zero-based current page number.
public integer getPage ( $recalculate = false ) | ||
$recalculate | boolean | Whether to recalculate the current page based on the page size and item count. |
return | integer | The zero-based current page number. |
---|
public integer getPageCount ( ) | ||
return | integer | Number of pages |
---|
Returns the number of items per page.
By default, this method will try to determine the page size by $pageSizeParam in $params. If the page size cannot be determined this way, $defaultPageSize will be returned.
See also $pageSizeLimit.
public integer getPageSize ( ) | ||
return | integer | The number of items per page. If it is less than 1, it means the page size is infinite, and thus a single page contains all items. |
---|
Returns the value of the specified query parameter.
This method returns the named parameter value from $params. Null is returned if the value does not exist.
protected string getQueryParam ( $name, $defaultValue = null ) | ||
$name | string | The parameter name |
$defaultValue | string | The value to be returned when the specified parameter does not exist in $params. |
return | string | The parameter value |
---|
Sets the current page number.
public void setPage ( $value, $validatePage = false ) | ||
$value | integer | The zero-based index of the current page. |
$validatePage | boolean | Whether to validate the page number. Note that in order to validate the page number, both $validatePage and this parameter must be true. |
public void setPageSize ( $value, $validatePageSize = false ) | ||
$value | integer | The number of items per page. |
$validatePageSize | boolean | Whether to validate page size. |