Spec-Zone.ru › CakePHP 2.9

Класс 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\Component
Ссылка: http://book.cakephp.org/2.0/ru/core-libraries/components/pagination.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: 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

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

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

__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() )

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

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

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

Параметры

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

Возвращает

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

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

__get()source public

__get( string $name )

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

Параметры

string $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
Контроллер с компонентами для передRedirect
строка|массив $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

Методы, унаследованные от 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

Возвращает

mixed
Возвращает результат вызова метода

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() для получения дополнительной информации о областей ведения журнала.

Возвращает

boolean
Успех записи в журнал

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 и именованных/передаваемых аргументов.

Возвращает

mixed

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


toString()source public

toString( )

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

Возвращает

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

Подробности свойств

$settingssource

public массив

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

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

$whitelistsource

public array

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

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.
https://api.cakephp.org/2.9/class-PaginatorComponent.html

Spec-Zone.ru

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