Класс yii\data\Pagination
| Наследование | yii\data\Pagination » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\web\Linkable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/data/Pagination.php |
Pagination представляет информацию, относящуюся к постраничному отображению элементов данных.
Когда данные необходимо отображать по страницам, Pagination может быть использована для представления такой информации, как общее количество элементов, размер страницы, текущая страница и т.д. Эта информация может быть передана страничным навигаторам для отображения кнопок или ссылок для навигации по страницам.
Следующий пример демонстрирует, как создать объект Pagination и передать его страничному навигатору.
Действие контроллера:
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,
]);
}
Представление:
foreach ($models as $model) {
// display $model here
}
// display pagination
echo LinkPager::widget([
'pagination' => $pages,
]);
Для получения более подробной информации и инструкций по использованию Pagination, см. статью руководства по постраничному отображению.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $defaultPageSize | integer | Значение по умолчанию для размера страницы. | yii\data\Pagination |
| $forcePageParam | boolean | Указывает, нужно ли всегда включать параметр страницы в URL, созданный методом createUrl(). | yii\data\Pagination |
| $limit | integer | Предел данных. | yii\data\Pagination |
| $links | array | Ссылки для навигации. | yii\data\Pagination |
| $offset | integer | Смещение данных. | yii\data\Pagination |
| $page | integer | Номер текущей страницы (нумерация с нуля). | yii\data\Pagination |
| $pageCount | integer | Количество страниц | yii\data\Pagination |
| $pageParam | string | Имя параметра, хранящего индекс текущей страницы. | yii\data\Pagination |
| $pageSize | integer | Количество элементов на странице. | yii\data\Pagination |
| $pageSizeLimit | array|false | Пределы размера страницы. | yii\data\Pagination |
| $pageSizeParam | string | Имя параметра, хранящего размер страницы. | yii\data\Pagination |
| $params | array | Параметры (имя => значение), которые должны быть использованы для получения номера текущей страницы и создания новых URL для навигации по страницам. | 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\Object |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, задано ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| createUrl() | Создаёт URL, подходящий для постраничной навигации со значением указанного номера страницы. | yii\data\Pagination |
| getLimit() | yii\data\Pagination | |
| getLinks() | Возвращает полный набор ссылок для навигации к первой, последней, следующей и предыдущей страницам. | yii\data\Pagination |
| getOffset() | yii\data\Pagination | |
| getPage() | Возвращает номер текущей страницы (нумерация с нуля). | yii\data\Pagination |
| getPageCount() | yii\data\Pagination | |
| getPageSize() | Возвращает количество элементов на странице. | yii\data\Pagination |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| setPage() | Устанавливает номер текущей страницы. | yii\data\Pagination |
| setPageSize() | yii\data\Pagination |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| getQueryParam() | Возвращает значение указанного параметра запроса. | yii\data\Pagination |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| LINK_FIRST | 'first' | yii\data\Pagination | |
| LINK_LAST | 'last' | yii\data\Pagination | |
| LINK_NEXT | 'next' | yii\data\Pagination | |
| LINK_PREV | 'prev' | yii\data\Pagination |
Подробное описание свойств
$defaultPageSize общественное свойство
Размер страницы по умолчанию. Это свойство будет возвращено свойством $pageSize, когда размер страницы нельзя определить по свойству $pageSizeParam из свойства $params.
public integer $defaultPageSize = 20
$forcePageParam общественное свойство
Всегда ли включать параметр страницы в URL, созданный методом createUrl(). Если false и $page равно 0, параметр страницы не будет добавлен в URL.
public boolean $forcePageParam = true
$limit общественное только для чтения свойство
Предел данных. Это может быть использовано для установки значения LIMIT для SQL-запроса для извлечения текущей страницы данных. Обратите внимание, что если размер страницы бесконечен, будет возвращено значение -1.
public integer getLimit ( )
$links общественное только для чтения свойство
Ссылки для навигации. Ключи массива указывают назначение ссылок (например, LINK_FIRST), а значения массива — соответствующие URL.
public array getLinks ( $absolute = false )
$offset общественное только для чтения свойство
Смещение данных. Это может быть использовано для установки значения OFFSET в SQL-запросе для извлечения текущей страницы данных.
public integer getOffset ( )
$page общественное свойство
Номер текущей страницы (нумерация с нуля).
public integer getPage ( $recalculate = false )
public void setPage ( $value, $validatePage = false )
$pageCount общественное только для чтения свойство
Количество страниц
public integer getPageCount ( )
$pageParam общественное свойство
Имя параметра, хранящего индекс текущей страницы.
См. также $params.
public string $pageParam = 'page'
$pageSize общественное свойство
Количество элементов на странице. Если значение меньше 1, это означает, что размер страницы бесконечен, и, следовательно, одна страница содержит все элементы.
public integer getPageSize ( )
public void setPageSize ( $value, $validatePageSize = false )
$pageSizeLimit общественное свойство
Пределы размера страницы. Первый элемент массива — минимальный размер страницы, а второй — максимальный размер страницы. Если это false, это означает, что $pageSize всегда должен возвращать значение $defaultPageSize.
public array|false $pageSizeLimit = [1, 50]
$pageSizeParam общественное свойство
Имя параметра, хранящего размер страницы.
См. также $params.
public string $pageSizeParam = 'per-page'
$params общественное свойство
Параметры (имя => значение), которые должны быть использованы для получения текущего номера страницы и создания новых URL страниц. Если не заданы, используются все параметры из $_GET.
Для добавления хэша ко всем ссылкам используйте array_merge($_GET, ['#' => 'my-hash']).
Элемент массива с индексом $pageParam считается текущим номером страницы (по умолчанию 0); в то время как элемент с индексом $pageSizeParam обрабатывается как размер страницы (по умолчанию $defaultPageSize).
public array $params = null
$route общественное свойство
Маршрут действия контроллера для отображения постраничного содержимого. Если не задан, используется текущий запрашиваемый маршрут.
public string $route = null
$totalCount общественное свойство
Общее количество элементов.
public integer $totalCount = 0
$urlManager общественное свойство
Менеджер URL, используемый для создания URL страниц. Если не задан, используется компонент приложения «urlManager».
public yii\web\UrlManager $urlManager = null
$validatePage общественное свойство
Необходимо ли проверять, находится ли $page в допустимом диапазоне. Когда это свойство true, значение $page всегда будет находиться между 0 и ($pageCount-1). Поскольку $pageCount зависит от правильного значения $totalCount, которое может быть недоступно в некоторых случаях (например, MongoDB), вы можете установить это свойство в false, чтобы отключить проверку номера страницы. Сделав это, $page вернёт значение, указанное по индексу $pageParam в $params.
public boolean $validatePage = true
Подробное описание методов
createUrl() public method
Создаёт URL, подходящий для пагинации, с указанным номером страницы.
Этот метод в основном вызывается компонентами пагинации при создании URL для реализации пагинации.
См. также:
| public string createUrl ( $page, $pageSize = null, $absolute = false ) | ||
|---|---|---|
| $page | integer |
Номер страницы (нумерация с нуля), на которую должен указывать URL. |
| $pageSize | integer |
Количество элементов на странице. Если не задано, используется значение $pageSize. |
| $absolute | boolean |
Указывает, нужно ли создать абсолютный URL. По умолчанию |
| return | string |
Созданный URL |
getLimit() public method
| public integer getLimit ( ) | ||
|---|---|---|
| return | integer |
Предел данных. Может быть использован для установки значения LIMIT в SQL-запросе для извлечения текущей страницы данных. Обратите внимание, что если размер страницы бесконечен, будет возвращено значение -1. |
getLinks() public method
Возвращает набор ссылок для навигации по первой, последней, следующей и предыдущей страницам.
| public array getLinks ( $absolute = false ) | ||
|---|---|---|
| $absolute | boolean |
Указывает, должны ли сгенерированные URL быть абсолютными. |
| return | array |
Ссылки для навигации. Ключи массива указывают назначение ссылок (например, LINK_FIRST), а значения — соответствующие URL. |
getOffset() public method
| public integer getOffset ( ) | ||
|---|---|---|
| return | integer |
Смещение данных. Может быть использовано для установки значения OFFSET в SQL-запросе для извлечения текущей страницы данных. |
getPage() public method
Возвращает номер текущей страницы (нумерация с нуля).
| public integer getPage ( $recalculate = false ) | ||
|---|---|---|
| $recalculate | boolean |
Указывает, нужно ли пересчитать текущую страницу на основе размера страницы и количества элементов. |
| return | integer |
Номер текущей страницы (нумерация с нуля). |
getPageCount() public method
| public integer getPageCount ( ) | ||
|---|---|---|
| return | integer |
Количество страниц |
getPageSize() public method
Возвращает количество элементов на странице.
По умолчанию этот метод пытается определить размер страницы по $pageSizeParam в $params. Если размер страницы не может быть определён таким образом, возвращается $defaultPageSize.
См. также $pageSizeLimit.
| public integer getPageSize ( ) | ||
|---|---|---|
| return | integer |
Количество элементов на странице. Если значение меньше 1, это означает, что размер страницы бесконечен, и, следовательно, одна страница содержит все элементы. |
getQueryParam() protected method
Возвращает значение указанного параметра запроса.
Этот метод возвращает значение параметра с заданным именем из $params. Если значение не существует, возвращается null.
| protected string getQueryParam ( $name, $defaultValue = null ) | ||
|---|---|---|
| $name | string |
Имя параметра |
| $defaultValue | string |
Значение, которое будет возвращено, если указанный параметр не существует в $params. |
| return | string |
Значение параметра |
setPage() public method
Устанавливает номер текущей страницы.
| public void setPage ( $value, $validatePage = false ) | ||
|---|---|---|
| $value | integer |
Индекс текущей страницы (нумерация с нуля). |
| $validatePage | boolean |
Указывает, нужно ли валидировать номер страницы. Обратите внимание, что для валидации номера страницы должны быть истинны как $validatePage, так и этот параметр. |
setPageSize() public method
| public void setPageSize ( $value, $validatePageSize = false ) | ||
|---|---|---|
| $value | integer |
Количество элементов на странице. |
| $validatePageSize | boolean |
Указывает, нужно ли валидировать размер страницы. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-data-pagination.html