Spec-Zone.ru › CakePHP 2.10

Класс PaginatorComponent

Этот компонент используется для обработки автоматической постраничной навигации данных модели. Основной способ использования этого компонента — вызов метода paginate(). Также есть удобная обёртка в контроллере.

Настройка постраничной навигации

Настройка постраничной навигации осуществляется с помощью PaginatorComponent::$settings. Это позволяет настроить стандартное поведение постраничной навигации в общем случае или для конкретной модели. Общие настройки используются, когда нет специфической настройки для модели, или у модели, которую вы постранично отображаете, нет собственных настроек.

$this->Paginator->settings = array(
    'limit' => 20,
    'maxLimit' => 100
);

Вышеуказанные настройки будут использоваться для постраничной навигации любой модели. Вы можете настроить настройки, специфичные для модели, присвоив настройки имени модели.

$this->Paginator->settings = array(
    'Post' => array(
        'limit' => 20,
        'maxLimit' => 100
    ),
    'Comment' => array( ... )
);

Это позволит иметь разные настройки постраничной навигации для моделей Comment и Post.

Постраничная навигация с пользовательскими поисковыми методами

Вы можете производить постраничную навигацию с любым типом поиска, определённым в вашей модели, используя параметр findType.

$this->Paginator->settings = array(
    'Post' => array(
        'findType' => 'popular'
    )
);

Это произведёт постраничную навигацию, используя метод find('popular').

CakeObject
Extended by Компонент
Extended by PaginatorComponent
Пакет: Cake\Controller\Компонент
Ссылка: https://book.cakephp.org/2.0/en/core-libraries/components/pagination.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Controller/Component/PaginatorComponent.php

Краткое описание свойств

  • $settings public
    array

    Настройки постраничной навигации. Эти настройки контролируют постраничную навигацию на общем уровне. Вы также можете определить подмассивы для настроек постраничной навигации для конкретных моделей.

  • $whitelist public
    array

    Список параметров, которые пользователи могут устанавливать, используя параметры запроса. Изменение этого списка позволит пользователям иметь больше влияния на постраничную навигацию, будьте осторожны с тем, что вы разрешаете.

Унаследованные свойства

  • _Collection, _componentMap, components

Краткое описание методов

  • __construct() public
    Конструктор
  • _getObject() protected
    Получить объект, на котором будет производиться постраничная навигация.
  • checkLimit() public
    Проверить параметр limit и убедиться, что он находится в пределах границ maxLimit.
  • getDefaults() public

    Получить настройки по умолчанию для $model. Если нет настроек для конкретной модели, будут использоваться общие настройки.

  • mergeOptions() public

    Объединяет различные параметры, используемые постраничной навигацией. Собирает настройки из следующих мест:

  • paginate() public
    Обрабатывает автоматическую постраничную навигацию записей модели.
  • validateSort() public

    Проверить, что желаемая сортировка может быть выполнена для $object. Можно сортировать только по полям или виртуальным полям. Параметр direction также будет очищен. Наконец, ключи sort + direction будут преобразованы в удобный для модели ключ order.

Подробное описание методов

__construct()source public

__construct( ComponentCollection $collection , array $settings array() )

Конструктор

Параметры

ComponentCollection $collection
A ComponentCollection this component can use to lazy load its components
array $settings optional array()
Массив параметров конфигурации.

Переопределяет

Component::__construct()

_getObject()source protected

_getObject( string|Model $object )

Получить объект, на котором будет производиться постраничная навигация.

Параметры

string|Model $object
Объект, который вы ищете.

Возвращает

mixed
Объект модели для постраничной навигации.

checkLimit()source public

checkLimit( array $options )

Проверить параметр limit и убедиться, что он находится в пределах границ maxLimit.

Параметры

array $options
Массив параметров с ключом limit для проверки.

Возвращает

array
Массив параметров для постраничной навигации

getDefaults()source public

getDefaults( string $alias )

Получить настройки по умолчанию для $model. Если нет настроек для конкретной модели, будут использоваться общие настройки.

Параметры

string $alias
Имя модели для получения настроек по умолчанию.

Возвращает

array
Массив настроек по умолчанию для модели или общие настройки.

mergeOptions()source public

mergeOptions( string $alias )

Объединяет различные параметры, используемые постраничной навигацией. Собирает настройки из следующих мест:

  • Общие настройки постраничной навигации
  • Настройки, специфичные для модели.
  • Параметры запроса

Результат этого метода — совокупность всех объединённых наборов параметров. Вы можете изменить PaginatorComponent::$whitelist, чтобы изменить параметры/значения, которые могут быть установлены с помощью параметров запроса.

Параметры

string $alias

Псевдоним модели, для которой выполняется постраничная навигация. Если в общих настройках есть ключ с этим значением, настройки этого ключа будут использоваться для постраничной навигации вместо общих.

Возвращает

array
Массив объединённых параметров.

paginate()source public

paginate( Model|string $object null , string|array $scope array() , array $whitelist array() )

Обрабатывает автоматическую постраничную навигацию записей модели.

Параметры

Model|string $object optional null
Модель для постраничной навигации (например: экземпляр модели, или 'Модель', или 'Модель.ВнутренняяМодель')
string|array $scope optional array()
Дополнительные условия поиска для использования при постраничной навигации
array $whitelist optional array()

Список разрешенных полей для сортировки. Это позволяет предотвратить сортировку по полям, которые не индексированы или нежелательны. Дополнительные сведения о том, как работает проверка разрешения и поля сортировки, см. в PaginatorComponent::validateSort().

Возвращает

array
Результаты запроса к модели

Выбрасывает

MissingModelException
NotFoundException

validateSort()source public

validateSort( Model $object , array $options , array $whitelist array() )

Проверить, что желаемая сортировка может быть выполнена для $object. Можно сортировать только по полям или виртуальным полям. Параметр direction также будет очищен. Наконец, ключи sort + direction будут преобразованы в удобный для модели ключ order.

Вы можете использовать параметр whitelist, чтобы управлять доступными колонками/полями для сортировки. Это помогает предотвратить сортировку больших наборов результатов по неиндексированным значениям.

Любые колонки, указанные в whitelist для сортировки, будут неявно доверенными. Вы можете использовать это для сортировки по синтетическим колонкам или колонкам, добавленным в пользовательские операции поиска, которые могут не существовать в схеме.

Параметры

Model $object
Модель, для которой выполняется постраничная навигация.
array $options
Параметры постраничной навигации, используемые для этого запроса.
array $whitelist optional array()
Список колонок, которые можно использовать для сортировки. Если пусто, разрешены все ключи.

Возвращает

array
Массив параметров со удалёнными sort + direction и заменой на order, если это возможно.

Методы, унаследованные от Компонента

__get()source public

__get( string $name )

Магический метод для леничной загрузки $components.

Параметры

string $name
Имя компонента для получения.

Возвращает

mixed
Объект компонента или null.

beforeRedirect()source public

beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )

Вызывается перед Controller::redirect(). Позволяет заменить URL, на который будет перенаправлен пользователь, на новый URL. Результатом этого метода может быть массив или строка.

Если результатом является массив и содержит ключ 'url', вы также можете указать следующие параметры:

  • status Код состояния перенаправления
  • exit Необходимо ли завершить выполнение скрипта после перенаправления.

Если результатом является строка или массив, не содержащий ключа 'url', он будет использован в качестве нового URL для перенаправления.

Параметры

Controller $controller
Контроллер с компонентами, для которых вызывается beforeRedirect
строка|массив $url
Строка или массив URL, на который происходит перенаправление.
целое число $status необязательно null
Код состояния перенаправления
логическое значение $exit необязательно true
Необходимо ли завершить выполнение скрипта.

Возвращаемое значение

массив|null
Либо массив, либо null.

Ссылка

https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRedirect

beforeRender()source public

beforeRender( Controller $controller )

Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()

Параметры

Controller $controller
Контроллер с компонентами, для которых вызывается beforeRender

Ссылка

https://book.cakephp.org/2.0/ru/controllers/components.html#Component::beforeRender

initialize()source public

initialize( Controller $controller )

Вызывается перед Controller::beforeFilter().

Параметры

Controller $controller
Контроллер с компонентами, для которых вызывается initialize

Ссылка

https://book.cakephp.org/2.0/ru/controllers/components.html#Component::initialize

shutdown()source public

shutdown( Controller $controller )

Вызывается после Controller::render() и перед выводом данных в браузер.

Параметры

Controller $controller
Контроллер с компонентами, для которых вызывается shutdown

Ссылка

https://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdown

startup()source public

startup( Controller $controller )

Вызывается после Controller::beforeFilter() и перед выполнением действия контроллера

Параметры

Controller $controller
Контроллер с компонентами, для которых вызывается startup

Ссылка

https://book.cakephp.org/2.0/ru/controllers/components.html#Component::startup

Методы, унаследованные от CakeObject

_mergeVars()source protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Объединяет свойства объекта $property со свойствами в определении класса $class. Значение свойств текущего класса будут добавлены поверх свойств класса $class.

Это предоставляет некоторую DRY-магию CakePHP. Если вы хотите её отключить, переопределите этот метод как пустую функцию.

Параметры

массив $properties
Имя свойств для объединения.
строка $class
Класс для объединения свойств.
логическое значение $normalize необязательно true
Установите в значение true, чтобы выполнить нормализацию свойств с помощью Hash::normalize() перед объединением.

_set()source protected

_set( array $properties array() )

Позволяет установить несколько свойств объекта в одной строке кода. Будут установлены только свойства, которые являются частью объявления класса.

Параметры

массив $properties необязательно array()
Ассоциативный массив, содержащий свойства и соответствующие значения.

_stop()source protected

_stop( integer|string $status 0 )

Останавливает выполнение текущего скрипта. Оборачивает exit(), что упрощает тестирование.

Параметры

целое число|строка $status необязательно 0
см. http://php.net/exit для значений

dispatchMethod()source public

dispatchMethod( string $method , array $params array() )

Вызывает метод этого объекта с заданными параметрами. Предоставляет обертку ООП для call_user_func_array

Параметры

строка $method
Имя метода для вызова
массив $params необязательно array()
Список параметров для использования при вызове $method

Возвращаемое значение

смешанное
Возвращает результат вызова метода

log()source public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Удобный метод для записи сообщения в CakeLog. См. CakeLog::write() для получения дополнительной информации о записи в лог.

Параметры

строка $msg
Сообщение для лога
целое число $type необязательно LOG_ERR
Константа типа ошибки. Определена в app/Config/core.php.
null|строка|массив $scope необязательно null

Область(и), в которой создаётся сообщение для лога. См. CakeLog::config() для получения дополнительной информации о областях ведения логов.

Возвращаемое значение

логическое значение
Успех записи в лог

requestAction()source public

requestAction( string|array $url , array $extra array() )

Вызывает метод контроллера из любой точки приложения. Может использоваться для соединения контроллеров или подключения плагинов к основному приложению. requestAction может использоваться для возврата рендеренных представлений или получения возвращаемого значения от действий контроллеров.

Под капотом этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Вы должны использовать форматы URL, совместимые с Router::reverse()

Передача данных POST и GET

Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет смоделировать данные POST.

Параметры

строка|массив $url

Строка или массив URL. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.

массив $extra необязательно array()

Если массив включает ключ "return", он устанавливает AutoRender в true. Также может быть использован для отправки данных GET/POST и именованных/переданных аргументов.

Возвращаемое значение

смешанное

Логическое значение true или false при успехе/неудачи, или содержимое рендерного действия, если в $extra установлен ключ 'return'.


toString()source public

toString( )

Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.

Возвращаемое значение

строка
Имя этого класса

Подробное описание свойств

$settingssource

public array

Настройки пагинации. Эти настройки управляют пагинацией на общем уровне. Вы также можете определить подмассивы настроек пагинации для конкретных моделей.

  • maxLimit Максимальное количество элементов, которое могут выбрать пользователи для просмотра. По умолчанию 100
  • limit Начальное количество элементов на страницу. По умолчанию 20.
  • page Номер стартовой страницы, по умолчанию 1.
  • paramType Какой тип параметров вы хотите использовать для пагинации?
    • named Использовать именованные параметры / параметры маршрутизации.
    • querystring Использовать параметры запроса.
  • queryScope Используя области параметров запроса, вы можете страницировать несколько запросов в одном действии контроллера.
$paginator->paginate = array(
'Article' => array('queryScope' => 'articles'),
'Tag' => array('queryScope' => 'tags'),
);

Каждый из вышеперечисленных запросов будет использовать разные наборы параметров запроса для данных пагинации. Пример URL, страницирующий оба результата:

/dashboard/articles[page]:1/tags[page]:2
array(
    'page' => 1,
    'limit' => 20,
    'maxLimit' => 100,
    'paramType' => 'named',
    'queryScope' => null
)

$whitelistsource

public array

Список параметров, которые пользователи могут задавать с помощью параметров запроса. Изменение этого списка позволит пользователям сильнее влиять на пагинацию, будьте осторожны с тем, что вы разрешаете.

array(
    'limit', 'sort', 'page', 'direction'
)

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-PaginatorComponent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API