Spec-Zone.ru › CakePHP 2.7

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

Объект
Extended by Компонент
Extended by PaginatorComponent
Пакет: Cake\Контроллер\Компонент
Авторские права: 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
Результаты запроса модели

Исключения

MissingModelException
MissingModelException
NotFoundException
NotFoundException

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::beforeRedirect

beforeRenderисточник public

beforeRender( Controller $controller )

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

Параметры

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

Ссылка

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

initializesource public

initialize( Controller $controller )

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

Параметры

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

Ссылка

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

shutdownsource public

shutdown( Controller $controller )

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

Параметры

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

Ссылка

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

startupsource 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
Название этого класса

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

$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'
)

Наследуемые свойства из Component

$_Collectionsource

protected ComponentCollection

Класс коллекции компонентов, используемый для отложенной загрузки компонентов.

$_componentMapsource

protected массив

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

array()

$componentssource

public массив

Другие компоненты, которые использует этот компонент.

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

Spec-Zone.ru

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