Класс 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.
Постраничная навигация с пользовательскими find-методами
Вы можете выполнить постраничную навигацию с любым типом поиска, определённым в вашей модели, используя опцию findType.
$this->Paginator->settings = array( 'Post' => array( 'findType' => 'popular' ) );
Выполнит постраничную навигацию, используя метод find('popular').
- Объект
-
Компонент -
PaginatorComponent
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT Лицензия
Ссылка: http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html
Расположение: Cake/Controller/Component/PaginatorComponent.php
Подробное описание методов
__constructисточник public
__construct( ComponentCollection $collection , array $settings array() )
Конструктор
Параметры
-
ComponentCollection$collection - A ComponentCollection этот компонент может использовать для ленивой загрузки своих компонентов
- массив
$settingsнеобязательно array() - Массив настроек конфигурации.
Переопределяет
Component::__construct() _getObjectисточник protected
_getObject( string|Model $object )
Получение объекта, по которому будет происходить постраничная навигация.
Параметры
- строка|
Model$object - Объект, который вы ищете.
Возвращает
mixedОбъект модели для постраничной навигации.
checkLimitисточник public
checkLimit( array $options )
Проверка параметра limit и убеждение, что он находится в пределах границ maxLimit.
Параметры
- массив
$options - Массив опций с ключом limit для проверки.
Возвращает
arrayМассив опций для постраничной навигации
getDefaultsисточник public
getDefaults( string $alias )
Получение значений по умолчанию для $model. Если нет настроек для конкретной модели, будут использоваться общие настройки.
Параметры
- строка
$alias - Имя модели для получения значений по умолчанию.
Возвращает
arrayМассив значений по умолчанию для постраничной навигации для модели или общие настройки.
mergeOptionsисточник public
mergeOptions( string $alias )
Объединяет различные опции, используемые для постраничной навигации. Собирает настройки из следующих мест:
- Общие настройки постраничной навигации
- Настройки, специфичные для модели.
- Параметры запроса
Результат этого метода — совокупность всех объединенных наборов опций. Вы можете изменить PaginatorComponent::$whitelist, чтобы изменить опции/значения, которые можно установить с помощью параметров запроса.
Параметры
- строка
$alias - Псевдоним модели, которая постраничивается. Если в общих настройках есть ключ с этим значением, настройки этого ключа будут использоваться для постраничной навигации вместо общих.
Возвращает
arrayМассив объединённых опций.
paginateисточник public
paginate( Model|string $object null , string|array $scope array() , array $whitelist array() )
Обрабатывает автоматическую постраничную навигацию записей модели.
Параметры
-
Model|строка$objectнеобязательно null - Модель для постраничной навигации (например: экземпляр модели или 'Модель' или 'Модель.ВложеннаяМодель')
- строка|массив
$scopeнеобязательно array() - Дополнительные условия поиска для использования при постраничной навигации
- массив
$whitelistнеобязательно array() - Список разрешенных полей для сортировки. Это позволяет предотвратить сортировку по неиндексированным или нежелательным столбцам. Дополнительные сведения о работе проверки полей сортировки и белых списков см. в PaginatorComponent::validateSort().
Возвращает
arrayРезультаты запроса модели
Исключения
MissingModelExceptionMissingModelException
NotFoundExceptionNotFoundException
validateSortисточник public
validateSort( Model $object , array $options , array $whitelist array() )
Проверка возможности сортировки по $object. Можно сортировать только по полям или virtualFields. Параметр direction также будет проверен. Наконец, ключи sort + direction будут преобразованы в модель-совместимый ключ order.
Вы можете использовать параметр whitelist для управления доступными для сортировки столбцами/полями. Это помогает предотвратить сортировку больших наборов результатов по неиндексированным значениям.
Любые столбцы, указанные в белом списке сортировки, будут неявно доверены. Вы можете использовать это для сортировки по синтетическим столбцам или столбцам, добавленным в пользовательские операции поиска, которые могут отсутствовать в схеме.
Параметры
-
Model$object - Модель, которая постраничивается.
- массив
$options - Опции постраничной навигации, используемые для этого запроса.
- массив
$whitelistнеобязательно array() - Список столбцов, которые могут быть использованы для сортировки. Если пусто, все ключи разрешены.
Возвращает
arrayМассив опций со снятыми sort + direction и заменёнными на order, если возможно.
Методы, унаследованные от Component
__getисточник public
__get( string $name )
Магический метод для ленивой загрузки $components.
Параметры
- строка
$name - Имя компонента для получения.
Возвращает
mixedОбъект компонента или null.
beforeRedirectисточник 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 - Завершить сценарий?
Возвращает
array|nullМассив или null.
Ссылка
http://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRedirectbeforeRenderисточник public
beforeRender( Controller $controller )
Вызывается перед Controller::beforeRender(), перед загрузкой класса представления и перед Controller::render()
Параметры
-
Controller$controller - Контроллер с компонентами для beforeRender
Ссылка
http://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRenderinitializesource public
initialize( Controller $controller )
Вызывается перед Controller::beforeFilter().
Параметры
-
Controller$controller - Контроллер с компонентами для инициализации
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::initializeshutdownsource public
shutdown( Controller $controller )
Вызывается после Controller::render() и перед выводом на браузер.
Параметры
-
Controller$controller - Контроллер с компонентами для завершения работы
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::shutdownstartupsource public
startup( Controller $controller )
Вызывается после Controller::beforeFilter() и перед действием контроллера
Параметры
-
Controller$controller - Контроллер с компонентами для запуска
Ссылка
http://book.cakephp.org/2.0/ru/controllers/components.html#Component::startupНаследуемые методы из Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства этого объекта $property со свойством в определении $class. Значение этого класса для свойства будет объединено поверх $class'
Это обеспечивает часть DRY-магии CakePHP. Если вы хотите отключить ее, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с.
- булево
$normalizeнеобязательно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Прекратить выполнение текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число/строка
$statusнеобязательно 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированную обертку для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательно array() - Список параметров для использования при вызове $method
Возвращает
mixedРезультат вызова метода
logsource 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|string|array
$scopeнеобязательно null - Область(и), в которой создается сообщение журнала. См. CakeLog::config() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех записи в журнал
requestActionsource 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 и именованных/переданных аргументов.
Возвращает
mixedБулево значение true или false при успехе/неудачи или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
stringНазвание этого класса
Краткое описание свойств
Наследуемые свойства из Component
$_Collectionsource
protected ComponentCollection
Класс коллекции компонентов, используемый для отложенной загрузки компонентов.
$_componentMapsource
protected массив
Таблица поиска компонентов, используемая для отложенной загрузки объектов компонентов.
array()
© 2005–2016 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.
http://api.cakephp.org/2.7/class-PaginatorComponent.html