Spec-Zone.ru › CakePHP 2.8

Класс 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').

Объект
Extended by Компонент
Extended by PaginatorComponent
Пакет: Cake\Контроллер\Компонент
Ссылка: http://book.cakephp.org/2.0/ru/core-libraries/components/pagination.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://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
    Объединяет различные опции, используемые Pagination. Объединяет настройки из следующих источников:
  • paginate() public
    Обрабатывает автоматическую постраничную навигацию записей модели.
  • validateSort() public
    Проверка возможности сортировки по указанному полю $object. Только поля или виртуальные поля могут быть отсортированы. Параметр direction также будет проверен. Наконец, ключи sort и direction преобразуются в модель-дружественный ключ order.

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

__construct()source public

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

Конструктор

Параметры

ComponentCollection $collection
A ComponentCollection, который может использоваться этим компонентом для ленивой загрузки его компонентов.
массив $settings необязательно array()
Массив настроек конфигурации.

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

Component::__construct()

_getObject()source protected

_getObject( string|Model $object )

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

Параметры

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

Возвращает

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

checkLimit()source public

checkLimit( array $options )

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

Параметры

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

Возвращает

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

getDefaults()source public

getDefaults( string $alias )

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

Параметры

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

Возвращает

массив
Массив стандартных настроек постраничной навигации для модели или общие настройки.

mergeOptions()source public

mergeOptions( string $alias )

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

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

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

Параметры

строка $alias

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

Возвращает

массив
Массив объединённых опций.

paginate()source public

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

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

Параметры

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

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

Возвращает

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

Возможные исключения

MissingModelException
NotFoundException

validateSort()source public

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

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

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

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

Параметры

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

Возвращает

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

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

__get()source public

__get( string $name )

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

Параметры

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

Возвращает

mixed
Объект Component или 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.

Ссылка

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

beforeRender()source public

beforeRender( Controller $controller )

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

Параметры

Controller $controller
Контроллер с компонентами для beforeRender

Ссылка

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

initialize()source public

initialize( Controller $controller )

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

Параметры

Controller $controller
Контроллер с компонентами для инициализации

Ссылка

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

shutdown()source public

shutdown( Controller $controller )

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

Параметры

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

Ссылка

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

startup()source public

startup( Controller $controller )

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

Параметры

Controller $controller
Контроллер с компонентами для запуска

Ссылка

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

Наследуемые методы от Object

_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 при успешном/неуспешном выполнении, или содержимое рендерного действия, если 'return' установлен в $extra.


toString()source public

toString( )

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

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

строка
Название этого класса

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

$settingssource

public массив

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

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

$whitelistsource

public массив

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

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

© 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.8/class-PaginatorComponent.html

Spec-Zone.ru

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