Spec-Zone.ru › CakePHP 3.1

Класс 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

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

__constructsource public

__construct( Cake\ORM\Table $table )

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

Параметры

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

_belongsToManysource protected

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

Преобразует данные для ассоциаций belongsToMany.

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

Параметры

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

Возвращает

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

_buildPropertyMapsource protected

_buildPropertyMap( array $options )

Создаёт отображение свойств => имён ассоциаций.

Параметры

массив $options
Список опций, содержащих ключ 'associated'.

Возвращает

array
массив

_loadAssociatedByIdssource protected

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

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

Параметры

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

Возвращает

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

_loadBelongsToManysource protected

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

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

Устарело

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

Параметры

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

Возвращает

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

_marshalAssociationsource protected

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

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

Параметры

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

Возвращает

mixed
смешанное

_mergeAssociationsource protected

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

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

Параметры

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

Возвращает

mixed
смешанное

_mergeBelongsToManysource protected

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

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

Параметры

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

Возвращает

array
массив

_mergeJoinDatasource protected

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

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

Параметры

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

Возвращает

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

_prepareDataAndOptionssource protected

_prepareDataAndOptions( array $data , array $options )

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

Параметры

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

Возвращает

array
Массив с подготовленными данными и опциями.

_validatesource protected

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

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

Параметры

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

Возвращает

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

Выбрасывает

RuntimeException
Если не может быть создан валидатор.

manysource public

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

Гидратирует множество сущностей и их связанные данные.

Опции:

  • associated: Ассоциации, перечисленные здесь, также будут преобразованы.
  • fieldList: Белый список полей, которые будут назначены сущности. Если отсутствует, будет использован список доступных полей сущности.
  • accessibleFields: Список полей для разрешения или запрещения в доступных полях сущности.

Параметры

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

Возвращает

array
Массив гидратированных записей.

См.

Cake\ORM\Table::newEntities()

mergesource public

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

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

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

Параметры:

  • associated: Ассоциации, указанные здесь, также будут маршализованы.
  • validate: Нужно ли валидировать данные перед гидрацией сущностей. Также может быть установлено в строку для использования определённого валидатора. По умолчанию true/default.
  • fieldList: Белый список полей, которые будут назначены сущности. Если отсутствует, будет использоваться список доступных полей в сущности.
  • 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\Datasource\EntityInterface

mergeManysource public

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

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

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

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

Параметры:

  • associated: Ассоциации, указанные здесь, также будут маршализованы.
  • fieldList: Белый список полей, которые будут назначены сущности. Если отсутствует, будет использоваться список доступных полей в сущности.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности.

Параметры

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

Возвращаемое значение

array
массив

onesource public

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

Гидрация одной сущности и её связанных данных.

Параметры:

  • associated: Ассоциации, указанные здесь, также будут маршализованы.
  • fieldList: Белый список полей, которые будут назначены сущности. Если отсутствует, будет использоваться список доступных полей в сущности.
  • accessibleFields: Список полей для разрешения или запрета в доступных полях сущности.

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

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

Параметры

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

Возвращаемое значение

Cake\ORM\Entity
\Cake\ORM\Entity

См. также

Cake\ORM\Table::newEntity()

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

_normalizeAssociationssource protected

_normalizeAssociations( array $associations )

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

Параметры

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

Возвращаемое значение

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

Сводка свойств

$_tablesource

protected Cake\ORM\Table

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

© 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Marshaller.html

Spec-Zone.ru

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