Spec-Zone.ru › CakePHP 4.4

Класс NumericPaginator

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

Пространство имён: Cake\Datasource\Paging

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

  • $_config protected
    array<string, mixed>

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array<string, mixed>

    Настройки постраничной навигации по умолчанию.

  • $_pagingParams protected
    array<string, array>

    Параметры постраничной навигации после выполнения операции постраничной навигации.

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

  • _configDelete() protected

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

  • _configRead() protected

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

  • _configWrite() protected

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

  • _extractFinder() protected

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

  • _prefix() protected

    Добавляет префикс к полю, если это возможно.

  • _removeAliases() protected

    Удаляет алиасы при необходимости.

  • addPageCountParams() protected

    Добавляет параметры "page" и "pageCount".

  • addPrevNextParams() protected

    Добавляет параметры "prevPage" и "nextPage".

  • addSortingParams() protected

    Добавляет параметры сортировки/упорядочивания.

  • addStartEndParams() protected

    Добавляет параметры "start" и "end".

  • buildParams() protected

    Создаёт параметры постраничной навигации.

  • checkLimit() public

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

  • configShallow() public

    Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

  • extractData() protected

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

  • getAllowedParameters() protected

    Метод-обёртка для чтения устаревшего параметра whitelist или allowedParameters.

  • getConfig() public

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

  • getConfigOrFail() public

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

  • getCount() protected

    Получение общего количества записей.

  • getDefaults() public

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

  • getPagingParams() public

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

  • getQuery() protected

    Получение запроса для извлечения постраничных результатов.

  • getSortableFields() protected

    Метод-обёртка для чтения устаревшего параметра sortWhitelist или sortableFields.

  • mergeOptions() public

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

  • paginate() public

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

  • setConfig() public

    Устанавливает конфигурацию.

  • validateSort() public

    Проверка возможности выполнения желаемой сортировки на $object.

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

_configDelete() protected

_configDelete(string $key): void

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

Parameters

string $key

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

Returns

void

Throws

Cake\Core\Exception\CakeException
if attempting to clobber existing config

_configRead() protected

_configRead(string|null $key): mixed

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

Parameters

string|null $key

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

Returns

mixed

_configWrite() protected

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

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

Parameters

array<string, mixed>|string $key

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

mixed $value

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

string|bool $merge optional

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

Returns

void

Throws

Cake\Core\Exception\CakeException
if attempting to clobber existing config

_extractFinder() protected

_extractFinder(array<string, mixed> $options): array

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

Parameters

array<string, mixed> $options

Параметры постраничной навигации.

Returns

array

_prefix() protected

_prefix(Cake\Datasource\RepositoryInterface $object, array $order, bool $allowed = false): array

Добавляет префикс к полю с псевдонимом таблицы, если это возможно.

Parameters

Cake\Datasource\RepositoryInterface $object

Объект репозитория.

array $order

Массив порядка.

bool $allowed optional

Разрешено ли поле.

Returns

array

_removeAliases() protected

_removeAliases(array<string, mixed> $fields, string $model): array<string, mixed>

Удаляет псевдоним, если необходимо.

Parameters

array<string, mixed> $fields

Текущие поля

string $model

Текущий псевдоним модели

Returns

array<string, mixed>

addPageCountParams() protected

addPageCountParams(array<string, mixed> $params, array $data): array<string, mixed>

Добавляет параметры "page" и "pageCount".

Parameters

array<string, mixed> $params

Параметры постраничной навигации.

array $data

Данные постраничной навигации.

Returns

array<string, mixed>

addPrevNextParams() protected

addPrevNextParams(array<string, mixed> $params, array $data): array<string, mixed>

Добавляет параметры "prevPage" и "nextPage".

Parameters

array<string, mixed> $params

Параметры постраничной навигации.

array $data

Данные постраничной навигации.

Returns

array<string, mixed>

addSortingParams() protected

addSortingParams(array<string, mixed> $params, array $data): array<string, mixed>

Добавляет параметры сортировки / упорядочивания.

Parameters

array<string, mixed> $params

Параметры постраничной навигации.

array $data

Данные постраничной навигации.

Returns

array<string, mixed>

addStartEndParams() protected

addStartEndParams(array<string, mixed> $params, array $data): array<string, mixed>

Добавляет параметры "start" и "end".

Parameters

array<string, mixed> $params

Параметры постраничной навигации.

array $data

Данные постраничной навигации.

Returns

array<string, mixed>

buildParams() protected

buildParams(array<string, mixed> $data): array<string, mixed>

Создает параметры постраничной навигации.

Parameters

array<string, mixed> $data

Данные постраничной навигации, содержащие ключи 'options', 'count', 'defaults', 'finder', 'numResults'.

Returns

array<string, mixed>

checkLimit() public

checkLimit(array<string, mixed> $options): array<string, mixed>

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

Parameters

array<string, mixed> $options

Массив параметров с ключом limit для проверки.

Returns

array<string, mixed>

configShallow() public

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

Сливает предоставленную конфигурацию с существующей. В отличие от config() который выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.

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

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

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

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

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

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

Parameters

array<string, mixed>|string $key

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

mixed|null $value optional

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

Returns

$this

extractData() protected

extractData(Cake\Datasource\RepositoryInterface $object, array<string, mixed> $params, array<string, mixed> $settings): array

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

Parameters

Cake\Datasource\RepositoryInterface $object

Объект репозитория.

array<string, mixed> $params

Параметры запроса

array<string, mixed> $settings

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

Returns

array

getAllowedParameters() protected

getAllowedParameters(): array<string>

Вспомогательный метод для чтения устаревшего белого списка или параметров allowedParameters

Returns

array<string>

getConfig() public

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

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

Usage

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

$this->getConfig();

Чтение конкретного значения:

$this->getConfig('key');

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

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

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

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

Parameters

string|null $key optional

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

mixed $default optional

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

Returns

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

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

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

Parameters

string $key

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

Returns

mixed

Throws

InvalidArgumentException

getCount() protected

getCount(Cake\Datasource\QueryInterface $query, array $data): int|null

Получает общее количество записей.

Parameters

Cake\Datasource\QueryInterface $query

Экземпляр запроса.

array $data

Данные постраничной навигации.

Returns

int|null

getDefaults() public

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

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

Параметры

string $alias

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

array<string, mixed> $settings

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

Возвращает

array<string, mixed>

getPagingParams() public

getPagingParams(): array<string, array>

Получить параметры постраничной навигации после операции постраничного вывода.

Возвращает

array<string, array>

getQuery() protected

getQuery(Cake\Datasource\RepositoryInterface $object, Cake\Datasource\QueryInterface|null $query, array<string, mixed> $data): Cake\Datasource\QueryInterface

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

Параметры

Cake\Datasource\RepositoryInterface $object

Экземпляр хранилища.

Cake\Datasource\QueryInterface|null $query

Экземпляр запроса.

array<string, mixed> $data

Данные постраничной навигации.

Возвращает

Cake\Datasource\QueryInterface

getSortableFields() protected

getSortableFields(array<string, mixed> $config): array<string>|null

Метод-обёртка для чтения устаревших опций sortWhitelist или sortableFields.

Параметры

array<string, mixed> $config

Данные конфигурации для объединения и вывода предупреждений.

Возвращает

array<string>|null

mergeOptions() public

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

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

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

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

Параметры

array<string, mixed> $params

Параметры запроса.

array $settings

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

Возвращает

array<string, mixed>

paginate() public

paginate(Cake\Datasource\RepositoryInterfaceCake\Datasource\QueryInterface $object, array $params = [], array $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'],
  ]
];

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

Постраничная навигация с настраиваемыми find-методами

Вы можете выполнить постраничную навигацию с любым типом find, определённым для вашей таблицы, используя опцию 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 $params optional

Параметры запроса

array $settings optional

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

Возвращает

Cake\Datasource\ResultSetInterface

Выбрасывает

Cake\Datasource\Paging\Exception\PageOutOfBoundsException

setConfig() public

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

Устанавливает конфигурацию.

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

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

$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

Выбрасывает

Cake\Core\Exception\CakeException
При попытке установить недопустимый ключ.

validateSort() public

validateSort(Cake\Datasource\RepositoryInterface $object, array<string, mixed> $options): array<string, mixed>

Проверить, можно ли выполнить желаемую сортировку по $object.

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

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

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

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

Опции порядка по умолчанию, предоставленные paginate(), будут объединены с запрошенным полем/направлением сортировки пользователя.

Параметры

Cake\Datasource\RepositoryInterface $object

Объект хранилища.

array<string, mixed> $options

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

Возвращает

array<string, mixed>

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

$_config protected

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

Тип

array<string, mixed>

$_configInitialized protected

Была ли свойство config уже настроена со значениями по умолчанию?

Тип

bool

$_defaultConfig protected

Настройки постраничной навигации по умолчанию.

При вызове paginate() эти настройки будут объединены с настройками, которые вы предоставите.

  • maxLimit - Максимальное число элементов для отображения, которое пользователь может выбрать. По умолчанию 100
  • limit - Начальное число элементов на странице. По умолчанию 20.
  • page - Начальная страница, по умолчанию 1.
  • allowedParameters - Список параметров, которые пользователи могут установить с помощью параметров запроса. Изменение этого списка позволит пользователям иметь больше влияния на постраничную навигацию, будьте осторожны с тем, что вы разрешаете.

Тип

array<string, mixed>

$_pagingParams protected

Параметры постраничной навигации после выполнения операции постраничной навигации.

Тип

array<string, 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.Datasource.Paging.NumericPaginator.html

Spec-Zone.ru

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