Spec-Zone.ru › CakePHP 4.4

Класс
PaginatorComponent

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

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

Вы настраиваете постраничную навигацию при вызове paginate(). Смотрите подробности в этом методе.

Пространство имён: Cake\Controller\Component
Устарело: 4.4.0 Используйте Cake\Datasource\Paging\Paginator напрямую.
Ссылка: https://book.cakephp.org/4/ru/controllers/components/pagination.html

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

  • $_componentMap protected
    array<string, array>

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

  • $_config protected
    array<string, mixed>

    Конфигурация во время выполнения

  • $_configInitialized protected
    bool

    Указатель, был ли свойство config уже настроено со значениями по умолчанию

  • $_defaultConfig protected
    array<string, mixed>

    Конфигурация по умолчанию

  • $_paginator protected
    Cake\Datasource\Paging\NumericPaginator

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

  • $_registry protected
    Cake\Controller\ComponentRegistry

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

  • $components protected
    array

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

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

  • __call() public

    Делегирование вызовов методов к Paginator.

  • __construct() public

    Конструктор

  • __debugInfo() public

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

  • __get() public

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

  • _configDelete() protected

    Удаляет один ключ конфигурации.

  • _configRead() protected

    Считывает ключ конфигурации.

  • _configWrite() protected

    Записывает ключ конфигурации.

  • _setPagingParams() protected

    Установка параметров постраничной навигации для экземпляра запроса.

  • configShallow() public

    Делегирование настройки параметров конфигурации в Paginator.

  • getConfig() public

    Делегирование получения параметров конфигурации в Paginator.

  • getConfigOrFail() public

    Возвращает конфигурацию для данного ключа.

  • getController() public

    Получение контроллера, к которому привязан этот компонент.

  • getPaginator() public

    Получение экземпляра постраничной навигации.

  • implementedEvents() public

    Поддерживаемые этим компонентом события.

  • initialize() public

    Метод обработчика конструктора.

  • log() public

    Удобный метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().

  • mergeOptions() public

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

  • paginate() public

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

  • setConfig() public

    Делегирование настройки параметров конфигурации в Paginator.

  • setPaginator() public

    Установка экземпляра постраничной навигации.

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

__call() public

__call(string $method, array $args): mixed

Обработка вызовов методов к Paginator.

Параметры

string $method

Имя метода.

array $args

Аргументы метода.

Возвращает

mixed

__construct() public

__construct(Cake\Controller\ComponentRegistry $registry, array<string, mixed> $config = [])

Конструктор

Параметры

Cake\Controller\ComponentRegistry $registry
array<string, mixed> $config необязательно

__debugInfo() public

__debugInfo(): array<string, mixed>

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

Возвращает

array<string, mixed>

__get() public

__get(string $name): Cake\Controller\Component|null

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

Параметры

string $name

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

Возвращает

Cake\Controller\Component|null

_configDelete() protected

_configDelete(string $key): void

Удаляет один ключ конфигурации.

Параметры

string $key

Ключ для удаления.

Возвращает

void

Исключения

Cake\Core\Exception\CakeException
если происходит попытка перезаписи существующей конфигурации

_configRead() protected

_configRead(string|null $key): mixed

Читает значение ключа конфигурации.

Параметры

string|null $key

Ключ для чтения.

Возвращает

mixed

_configWrite() protected

_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

Записывает значение ключа конфигурации.

Параметры

array<string, mixed>|string $key

Ключ для записи.

mixed $value

Значение для записи.

string|bool $merge необязательно

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.

Возвращает

void

Исключения

Cake\Core\Exception\CakeException
если происходит попытка перезаписи существующей конфигурации

_setPagingParams() protected

_setPagingParams(): void

Устанавливает параметры постраничности для экземпляра запроса.

Возвращает

void

configShallow() public

configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this

Продвинутая настройка параметров конфигурации.

Установка определённого значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

array<string, mixed>|string $key

Ключ для установки или полный массив настроек.

mixed|null $value необязательно

Значение для установки.

Возвращает

$this

getConfig() public

getConfig(string|null $key = null, mixed $default = null): mixed

Получение параметров конфигурации от Paginator.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определённого значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key необязательно

Ключ для получения или null для всей конфигурации.

mixed $default необязательно

Возвращаемое значение, если ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает значение конфигурации для указанного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Исключения

InvalidArgumentException

getController() public

getController(): Cake\Controller\Controller

Получает контроллер, к которому привязан этот компонент.

Возвращает

Cake\Controller\Controller

getPaginator() public

getPaginator(): Cake\Datasource\Paging\NumericPaginator

Получает экземпляр Paginator.

Возвращает

Cake\Datasource\Paging\NumericPaginator

implementedEvents() public

implementedEvents(): array<string, mixed>

Поддерживаемые этим компонентом события.

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

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

Возвращает

array<string, mixed>

initialize() public

initialize(array<string, mixed> $config): void

Метод инициализации.

Реализуйте этот метод, чтобы избежать необходимости переопределять конструктор и вызывать родительский.

Параметры

array<string, mixed> $config

Настройки конфигурации, предоставленные этому компоненту.

Возвращает

void

log() public

log(string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool

Удобный метод для записи сообщения в журнал. Для получения дополнительной информации о записи в журналы, обратитесь к Log::write().

Параметры

string $message

Сообщение журнала.

string|int $level необязательно

Уровень ошибки.

array|string $context необязательно

Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

bool

mergeOptions() public

mergeOptions(string $alias, array<string, mixed> $settings): array<string, mixed>

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

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

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

Параметры

string $alias

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

array<string, mixed> $settings

Настройки для объединения с данными запроса.

Возвращает

array<string, mixed>

paginate() public

paginate(Cake\Datasource\RepositoryInterfaceCake\Datasource\QueryInterface $object, array<string, mixed> $settings = []): Cake\Datasource\ResultSetInterface

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

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

При вызове paginate() вы можете использовать параметр $settings для передачи настроек постраничной навигации. Эти настройки используются для построения запросов и управления другими настройками постраничной навигации.

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

$settings = [
   'limit' => 20,
   'maxLimit' => 100
 ];
 $results = $paginator->paginate($table, $settings);

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

$settings = [
   'Articles' => [
     'limit' => 20,
     'maxLimit' => 100
   ],
   'Comments' => [ ... ]
 ];
 $results = $paginator->paginate($table, $settings);

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

Управление полями сортировки

По умолчанию CakePHP автоматически позволит сортировать по любому столбцу в объекте таблицы, по которому происходит постраничная навигация. Часто вам захочется разрешить сортировку по связанным столбцам или вычисляемым полям. В таких случаях вам нужно будет определить разрешённый список полей, по которым вы хотите разрешить сортировку. Вы можете определить разрешённые поля в параметре $settings:

$settings = [
  'Articles' => [
    'finder' => 'custom',
    'sortableFields' => ['title', 'author_id', 'comment_count'],
  ]
];

Передача пустого массива как разрешенного списка полностью запрещает сортировку.

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

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

$settings = [
   'Articles' => [
     'finder' => 'popular'
   ]
 ];
 $results = $paginator->paginate($table, $settings);

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

Вы также можете передать уже созданный экземпляр запроса в этот метод:

$query = $this->Articles->find('popular')->matching('Tags', function ($q) {
  return $q->where(['name' => 'CakePHP'])
});
$results = $paginator->paginate($query);

Ограничение параметров запроса

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

$articles = $paginator->paginate($articlesQuery, ['scope' => 'articles']);
$tags = $paginator->paginate($tagsQuery, ['scope' => 'tags']);

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

/dashboard?articles[page]=1&tags[page]=2

Параметры

Cake\Datasource\RepositoryInterfaceCake\Datasource\QueryInterface $object

Таблица или запрос для постраничной навигации.

array<string, mixed> $settings optional

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

Возвращает

Cake\Datasource\ResultSetInterface

Выбрасывает

Cake\Http\Exception\NotFoundException

setConfig() public

setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this

Продлевает настройку параметров конфигурации для Paginator.

Использование

Установка конкретного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

array<string, mixed>|string $key

Ключ для установки или полный массив конфигураций.

mixed|null $value optional

Значение для установки.

bool $merge optional

Требуется ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.

Возвращает

$this

setPaginator() public

setPaginator(Cake\Datasource\Paging\NumericPaginator $paginator): $this

Установить экземпляр paginator.

Параметры

Cake\Datasource\Paging\NumericPaginator $paginator

Экземпляр Paginator.

Возвращает

$this

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

$_componentMap protected

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

Тип

array<string, array>

$_config protected

Конфигурация в ходе выполнения.

Тип

array<string, mixed>

$_configInitialized protected

Была ли уже настроена конфигурация свойства с значениями по умолчанию.

Тип

bool

$_defaultConfig protected

Конфигурация по умолчанию.

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

Тип

array<string, mixed>

$_paginator protected

Экземпляр paginator источника данных.

Тип

Cake\Datasource\Paging\NumericPaginator

$_registry protected

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

Тип

Cake\Controller\ComponentRegistry

$components protected

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

Тип

array

© 2005–present 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/4.4/class-Cake.Controller.Component.PaginatorComponent.html

Spec-Zone.ru

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