Spec-Zone.ru › CakePHP 4.2

Класс EavStrategy

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

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

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

Пространство имен: Cake\ORM\Behavior\Translate

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

  • $_config protected
    array

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

  • $_configInitialized protected
    bool

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

  • $_defaultConfig protected
    array

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

  • $_tableLocator protected
    Cake\ORM\Locator\LocatorInterface|null

    Экземпляр локатора таблиц

  • $locale protected
    string|null

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

  • $table protected
    Cake\ORM\Table

    Экземпляр таблицы

  • $translationTable protected
    Cake\ORM\Table

    Экземпляр таблицы, ответственный за перевод

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

  • __construct() public

    Конструктор

  • _configDelete() protected

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

  • _configRead() protected

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

  • _configWrite() protected

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

  • afterSave() public

    Сбрасывает временное _i18n свойство после сохранения сущности

  • beforeFind() public

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

  • beforeSave() public

    Модифицирует сущность перед сохранением, чтобы переведенные поля также сохранялись в базе данных.

  • buildMarshalMap() public

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

  • bundleTranslatedFields() protected

    Вспомогательный метод, используемый для создания нескольких переведенных сущностей полей из данных, найденных в свойстве _translations в переданной сущности. Результат будет помещен в его свойство _i18n.

  • configShallow() public

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

  • findExistingTranslations() protected

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

  • getConfig() public

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

  • getConfigOrFail() public

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

  • getLocale() public

    Возвращает текущий локаль.

  • getTableLocator() public

    Получает локатор таблиц.

  • getTranslationTable() public

    Возвращает экземпляр таблицы переводов.

  • groupTranslations() public

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

  • rowMapper() protected

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

  • setConfig() public

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

  • setLocale() public

    Устанавливает локаль для использования.

  • setTableLocator() public

    Устанавливает локатор таблиц.

  • setupAssociations() protected

    Создаёт связи между связанной таблицей и каждым полем, переданным в этот метод.

  • translationField() public

    Возвращает полное алиасовое имя поля для переведенных полей.

  • unsetEmptyFields() protected

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

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

__construct() public

__construct(Cake\ORM\Table $table, array $config = [])

Конструктор

Параметры

Cake\ORM\Table $table

Таблица, к которой прикреплена эта стратегия.

array $config необязательно

Настройка для этой стратегии.

_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(string|array $key, mixed $value, bool|string $merge = false): void

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

Параметры

string|array $key

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

mixed $value

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

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

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

Возвращает

void

Выбрасывает

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

afterSave() public

afterSave(Cake\Event\EventInterface $event, Cake\Datasource\EntityInterface $entity): void

Сбрасывает временное свойство _i18n после сохранения сущности

Параметры

Cake\Event\EventInterface $event

Событие beforeSave, которое было вызвано

Cake\Datasource\EntityInterface $entity

Сущность, которая будет сохранена

Возвращает

void

beforeFind() public

beforeFind(Cake\Event\EventInterface $event, Cake\ORM\Query $query, ArrayObject $options): void

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

Параметры

Cake\Event\EventInterface $event

Событие beforeFind, которое было вызвано.

Cake\ORM\Query $query

Запрос

ArrayObject $options

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

Возвращает

void

beforeSave() public

beforeSave(Cake\Event\EventInterface $event, Cake\Datasource\EntityInterface $entity, ArrayObject $options): void

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

Параметры

Cake\Event\EventInterface $event

Событие beforeSave, которое было вызвано

Cake\Datasource\EntityInterface $entity

Сущность, которая будет сохранена

ArrayObject $options

параметры, переданные в метод сохранения

Возвращает

void

buildMarshalMap() public

buildMarshalMap(Cake\ORM\Marshaller $marshaller, array $map, array $options): array

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

Добавить в _translations маршаллинг обработчики. Вы можете отключить маршаллинг переводов, установив 'translations' => false в параметрах, предоставленных Table::newEntity() или Table::patchEntity().

Параметры

Cake\ORM\Marshaller $marshaller

Маршаллер таблицы, к которой прикреплено поведение.

array $map

Строящаяся карта свойств.

array $options

Массив параметров, используемый в вызове маршалинга.

Возвращает

array

bundleTranslatedFields() protected

bundleTranslatedFields(Cake\Datasource\EntityInterface $entity): void

Вспомогательный метод, используемый для создания нескольких сущностей переведенных полей из данных, найденных в свойстве _translations в переданной сущности. Результат будет помещен в его свойство _i18n.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность

Возвращает

void

configShallow() public

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

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

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

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

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

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

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

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

Параметры

string|array $key

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

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

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

Возвращает

$this

findExistingTranslations() protected

findExistingTranslations(array $ruleSet): array

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

Параметры

array $ruleSet

Массив массивов условий, используемых для поиска каждого

Возвращает

array

getConfig() public

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

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

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

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

$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

getLocale() public

getLocale(): string

Возвращает текущий язык.

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

Возвращает

string

См. также

\Cake\I18n\I18n::getLocale()
\Cake\ORM\Behavior\TranslateBehavior::setLocale()

getTableLocator() public

getTableLocator(): Cake\ORM\Locator\LocatorInterface

Получает локатор таблицы.

Возвращает

Cake\ORM\Locator\LocatorInterface

getTranslationTable() public

getTranslationTable(): Cake\ORM\Table

Возвращает экземпляр таблицы переводов.

Возвращает

Cake\ORM\Table

groupTranslations() public

groupTranslations(Cake\Datasource\ResultSetInterface $results): Cake\Collection\CollectionInterface

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

Параметры

Cake\Datasource\ResultSetInterface $results

Результаты для изменения.

Возвращает

Cake\Collection\CollectionInterface

rowMapper() protected

rowMapper(Cake\Datasource\ResultSetInterface $results, string $locale): Cake\Collection\CollectionInterface

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

Параметры

Cake\Datasource\ResultSetInterface $results

Результаты для отображения.

string $locale

Строка языка

Возвращает

Cake\Collection\CollectionInterface

setConfig() public

setConfig(string|array $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']);

Параметры

string|array $key

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

mixed|null $value optional

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

bool $merge optional

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

Возвращает

$this

Исключения

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

setLocale() public

setLocale(string|null $locale): $this

Устанавливает используемый язык.

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

Обратите внимание, что в случае, если у сущности установлено свойство _locale, этот язык будет иметь приоритет над языком, установленным с помощью этого метода (и над глобально настроенным языком)!

Параметры

string|null $locale

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

Возвращает

$this

setTableLocator() public

setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this

Устанавливает локатор таблицы.

Параметры

Cake\ORM\Locator\LocatorInterface $tableLocator

Экземпляр LocatorInterface.

Возвращает

$this

setupAssociations() protected

setupAssociations(): void

Создаёт ассоциации между связанной таблицей и каждым полем, переданным в этот метод.

Кроме того, он создаёт ассоциацию i18n HasMany, которая будет использоваться для извлечения всех переводов для каждой записи в связанной таблице.

Возвращает

void

translationField() public

translationField(string $field): string

Возвращает полное алиасное имя поля для переведённых полей.

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

Параметры

string $field

Имя поля, которое нужно привести к алиасу.

Возвращает

string

unsetEmptyFields() protected

unsetEmptyFields(Cake\Datasource\EntityInterface $entity): void

Сбрасывает пустые переводы, чтобы избежать сохранения.

Должен вызываться только если $this->_config['allowEmptyTranslations'] равен false.

Параметры

Cake\Datasource\EntityInterface $entity

Сущность, в которой необходимо проверить пустые поля переводов.

Возвращает

void

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

$_config protected

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

Тип

array

$_configInitialized protected

Настройка свойства уже настроена по умолчанию

Тип

bool

$_defaultConfig protected

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

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

Тип

array

$_tableLocator protected

Экземпляр локатора таблицы

Тип

Cake\ORM\Locator\LocatorInterface|null

$locale protected

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

Тип

string|null

$table protected

Экземпляр таблицы

Тип

Cake\ORM\Table

$translationTable protected

Экземпляр таблицы, отвечающий за перевод

Тип

Cake\ORM\Table

© 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.2/class-Cake.ORM.Behavior.Translate.EavStrategy.html

Spec-Zone.ru

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