Spec-Zone.ru › CakePHP 3.4

Класс Marshaller

Содержит логику для преобразования данных массива в сущности.

Полезно при преобразовании данных запроса в сущности.

Cake\ORM\Marshaller использует Cake\ORM\AssociationsNormalizerTrait
Пространство имен: Cake\ORM
См.: \Cake\ORM\Table::newEntity()
См.: \Cake\ORM\Table::newEntities()
См.: \Cake\ORM\Table::patchEntity()
См.: \Cake\ORM\Table::patchEntities()
Расположение: ORM/Marshaller.php

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

  • $_table protected
    Cake\ORM\Table
    Экземпляр таблицы, для которой предназначен этот маршаллер.

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

  • __construct() public
    Конструктор.
  • _belongsToMany() protected
    Маршаллит данные для ассоциаций belongsToMany.
  • _buildPropertyMap() protected
    Создаёт отображение свойство => вызываемая функция маршаллирования.
  • _loadAssociatedByIds() protected
    Загружает список принадлежностей many-to-many по идентификаторам.
  • _loadBelongsToMany() protected
    Загружает список принадлежностей many-to-many по идентификаторам.
  • _marshalAssociation() protected
    Создаёт новый под-маршаллер и маршаллит связанные данные.
  • _mergeAssociation() protected
    Создаёт новый под-маршаллер и объединяет связанные данные.
  • _mergeBelongsToMany() protected

    Создаёт новый под-маршаллер и объединяет связанные данные для ассоциации BelongstoMany.

  • _mergeJoinData() protected
    Объединяет специальное свойство _joinData в набор сущностей.
  • _prepareDataAndOptions() protected
    Возвращает данные и параметры, подготовленные для валидации и маршаллирования.
  • _validate() protected
    Возвращает ошибки валидации для набора данных на основе переданных параметров.
  • many() public
    Гидратирует множество сущностей и их связанные данные.
  • merge() public

    Объединяет $data в $entity и рекурсивно выполняет то же самое для каждого из имён ассоциаций, переданных в $options. При объединении ассоциаций, если сущность отсутствует в родительской сущности для данной ассоциации, она будет создана.

  • mergeMany() public

    Объединяет каждый из элементов из $data в каждую из сущностей в $entities и рекурсивно выполняет то же самое для каждого из имён ассоциаций, переданных в $options. При объединении ассоциаций, если сущность отсутствует в родительской сущности для данной ассоциации, она будет создана.

  • one() public
    Гидратирует одну сущность и её связанные данные.

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

__construct()source public

__construct( Cake\ORM\Table $table )

Конструктор.

Параметры

Cake\ORM\Table $table
Таблица, для которой предназначен этот маршаллер.

_belongsToMany()source protected

_belongsToMany( Cake\ORM\Association\BelongsToMany $assoc , array $data , array $options [] )

Маршаллит данные для ассоциаций belongsToMany.

Строит связанные сущности и обрабатывает особые случаи для сущностей таблицы соединения.

Параметры

Cake\ORM\Association\BelongsToMany $assoc
Ассоциация для маршаллирования.
array $data
Данные для преобразования в сущности.
array $options необязательно []
Список параметров.

Возвращает

array
Массив созданных сущностей.

Выбрасывает

BadMethodCallException
InvalidArgumentException
RuntimeException

_buildPropertyMap()source protected

_buildPropertyMap( array $data , array $options )

Создаёт отображение свойство => вызываемая функция маршаллирования.

Параметры

array $data
Маршаллируемые данные.
array $options
Список параметров, содержащий ключ 'associated'.

Возвращает

array

Выбрасывает

InvalidArgumentException
При отсутствии ассоциаций.

_loadAssociatedByIds()source protected

_loadAssociatedByIds( Cake\ORM\Association $assoc , array $ids )

Загружает список принадлежностей many-to-many по идентификаторам.

Параметры

Cake\ORM\Association $assoc
Класс ассоциации для ассоциации many-to-many.
array $ids
Список идентификаторов для загрузки.

Возвращает

array
Массив сущностей.

_loadBelongsToMany()source protected

_loadBelongsToMany( Cake\ORM\Association $assoc , array $ids )

Загружает список принадлежностей many-to-many по идентификаторам.

Устарело

Используйте _loadAssociatedByIds()

Параметры

Cake\ORM\Association $assoc
Класс ассоциации для ассоциации many-to-many.
array $ids
Список идентификаторов для загрузки.

Возвращает

array
Массив сущностей.

_marshalAssociation()source protected

_marshalAssociation( Cake\ORM\Association $assoc , array $value , array $options )

Создаёт новый под-маршаллер и маршаллит связанные данные.

Параметры

Cake\ORM\Association $assoc
Ассоциация для маршаллирования
array $value
Данные для гидратации
array $options
Список параметров.

Возвращает

mixed

_mergeAssociation()source protected

_mergeAssociation( Cake\Datasource\EntityInterface $original , Cake\ORM\Association $assoc , array $value , array $options )

Создаёт новый под-маршаллер и объединяет связанные данные.

Параметры

Cake\Datasource\EntityInterface $original
Исходная сущность
Cake\ORM\Association $assoc
Ассоциация для объединения
array $value
Данные для гидратации
array $options
Список параметров.

Возвращает

mixed

_mergeBelongsToMany()source protected

_mergeBelongsToMany( Cake\Datasource\EntityInterface $original , Cake\ORM\Association $assoc , array $value , array $options )

Создаёт новый под-маршаллер и объединяет связанные данные для ассоциации BelongstoMany.

Параметры

Cake\Datasource\EntityInterface $original
Исходная сущность
Cake\ORM\Association $assoc
Ассоциация для маршаллирования
array $value
Данные для гидратации
array $options
Список параметров.

Возвращает

array

_mergeJoinData()source protected

_mergeJoinData( Cake\Datasource\EntityInterface $original , Cake\ORM\Association\BelongsToMany $assoc , array $value , array $options )

Объединяет специальное свойство _joinData в набор сущностей.

Параметры

Cake\Datasource\EntityInterface $original
Исходная сущность
Cake\ORM\Association\BelongsToMany $assoc
Ассоциация для маршаллирования
array $value
Данные для гидратации
array $options
Список параметров.

Возвращает

array
Массив сущностей
END_OF_DOCUMENT_MARKER ```

_prepareDataAndOptions()source protected

_prepareDataAndOptions( array $data , array $options )

Возвращает данные и параметры, подготовленные для валидации и маршаллирования.

Параметры

массив $data
Данные для подготовки.
массив $options
Параметры, переданные этому маршаллеру.

Возвращает

массив
Массив, содержащий подготовленные данные и параметры.

_validate()source protected

_validate( array $data , array $options , boolean $isNew )

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

Параметры

массив $data
Данные для валидации.
массив $options
Параметры, переданные этому маршаллеру.
boolean $isNew
Является ли это новой сущностью или сущностью для обновления.

Возвращает

массив
Список ошибок валидации.

Выбрасывает

RuntimeException
Если не удаётся создать валидатор.

many()source public

many( array $data , array $options [] )

Загрузка нескольких сущностей и связанных с ними данных.

Параметры:

  • validate: Установите в false, чтобы отключить валидацию. Также может быть строкой с правилами валидации, которые нужно применить. По умолчанию true/default.
  • associated: Здесь перечислены ассоциации, которые также будут маршаллированы. По умолчанию null.
  • fieldList: (устарело) С версии 3.4.0. Используйте вместо него fields
  • fields: Список полей, которые будут присвоены сущности. Если отсутствует, будет использован список доступных полей в сущности. По умолчанию null.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности. По умолчанию null.
  • forceNew: При включении, ассоциации belongsToMany будут иметь созданные 'новые' сущности, когда установлены значения первичного ключа, и запись еще не существует. Обычно первичный ключ для отсутствующих сущностей игнорируется. По умолчанию false.

Параметры

массив $data
Данные для загрузки.
массив $options необязательно []
Список параметров

Возвращает

массив
Массив загруженных записей.

См. также

\Cake\ORM\Table::newEntities()
\Cake\ORM\Entity::$_accessible

merge()source public

merge( Cake\Datasource\EntityInterface $entity , array $data , array $options [] )

Объединяет $data в $entity и рекурсивно выполняет то же самое для каждого из имен ассоциаций, переданных в $options. При объединении ассоциаций, если сущность отсутствует в родительской сущности для данной ассоциации, будет создана новая.

При объединении ассоциаций HasMany или BelongsToMany все сущности в массиве $data будут отображаться, те, которые могут быть сопоставлены по первичному ключу, получат объединенные данные, но те, которые не могут, будут удалены. ids параметр может быть использован для определения, должна ли ассоциация использовать формат _ids.

Параметры:

  • associated: Здесь перечислены ассоциации, которые также будут маршаллированы.
  • validate: Выполнять ли валидацию данных перед загрузкой сущностей. Также может быть строкой, чтобы использовать определенный валидатор. По умолчанию true/default.
  • fieldList: (устарело) С версии 3.4.0. Используйте вместо него fields
  • fields: Список полей, которые будут присвоены сущности. Если отсутствует, будет использован список доступных полей в сущности.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности.

Вышеперечисленные параметры могут быть использованы в каждом вложенном массиве associated. В дополнение к вышеперечисленным параметрам можно также использовать параметр onlyIds для ассоциаций HasMany и BelongsToMany. Когда он true, этот параметр ограничивает данные запроса только чтением из _ids.

$result = $marshaller->merge($entity, $data, [
  'associated' => ['Tags' => ['onlyIds' => true]]
]);

Параметры

Cake\Datasource\EntityInterface $entity

сущность, в которую будут объединены данные

массив $data
список значений полей для объединения в сущность
массив $options необязательно []
Список параметров.

Возвращает

Cake\Datasource\EntityInterface

См. также

\Cake\ORM\Entity::$_accessible

mergeMany()source public

mergeMany( array|Traversable $entities , array $data , array $options [] )

Объединяет каждый элемент из $data в каждую из сущностей в $entities и рекурсивно выполняет то же самое для каждого из имен ассоциаций, переданных в $options. При объединении ассоциаций, если сущность отсутствует в родительской сущности для данной ассоциации, будет создана новая.

Записи в $data сопоставляются с сущностями с использованием столбца первичного ключа. Элементы в $entities , которые не могут быть сопоставлены ни с одной записью в $data , будут удалены. Записи в $data , которые не могли быть сопоставлены, будут маршаллированы как новая сущность.

При объединении ассоциаций HasMany или BelongsToMany все сущности в массиве $data будут отображаться, те, которые могут быть сопоставлены по первичному ключу, получат объединенные данные, но те, которые не могут, будут удалены.

Параметры:

  • validate: Выполнять ли валидацию данных перед загрузкой сущностей. Также может быть строкой, чтобы использовать определенный валидатор. По умолчанию true/default.
  • associated: Здесь перечислены ассоциации, которые также будут маршаллированы.
  • fieldList: (устарело) С версии 3.4.0. Используйте вместо него fields
  • fields: Список полей, которые будут присвоены сущности. Если отсутствует, будет использован список доступных полей в сущности.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности.

Параметры

массив|Перечислимый $entities

сущности, в которые будут объединены данные

массив $data
список массивов для объединения в сущности
массив $options необязательно []
Список параметров.

Возвращает

массив

См. также

\Cake\ORM\Entity::$_accessible

one()source public

one( array $data , array $options [] )

Загрузка одной сущности и связанных с ней данных.

Параметры:

  • validate: Установите в false, чтобы отключить валидацию. Также может быть строкой с правилами валидации, которые нужно применить. По умолчанию true/default.
  • associated: Здесь перечислены ассоциации, которые также будут маршаллированы. По умолчанию null.
  • fieldList: (устарело) С версии 3.4.0. Используйте вместо него fields.
  • fields: Список полей, которые будут присвоены сущности. Если отсутствует, будет использован список доступных полей в сущности. По умолчанию null.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности. По умолчанию null.
  • forceNew: При включении, ассоциации belongsToMany будут иметь созданные 'новые' сущности, когда установлены значения первичного ключа, и запись еще не существует. Обычно первичный ключ для отсутствующих сущностей игнорируется. По умолчанию false.

Вышеперечисленные параметры могут быть использованы в каждом вложенном массиве associated . В дополнение к вышеперечисленным параметрам можно также использовать параметр onlyIds для ассоциаций HasMany и BelongsToMany. Когда он true, этот параметр ограничивает данные запроса только чтением из _ids.

$result = $marshaller->one($data, [
  'associated' => ['Tags' => ['onlyIds' => true]]
]);

Параметры

массив $data
Данные для загрузки.
массив $options необязательно []
Список параметров

Возвращает

Cake\Datasource\EntityInterface

См. также

\Cake\ORM\Table::newEntity()
\Cake\ORM\Entity::$_accessible

Методы, используемые из Cake\ORM\AssociationsNormalizerTrait

_normalizeAssociations()source protected

_normalizeAssociations( array $associations )

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

Параметры

массив $associations
Массив включенных ассоциаций.

Возвращает

массив
Массив с преобразованными обозначениями точками во вложенные массивы

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

$_tablesource

protected Cake\ORM\Table

Экземпляр таблицы, для которой предназначен этот маршаллер.

© 2005–2017 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/3.4/class-Cake.ORM.Marshaller.html

Spec-Zone.ru

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