Класс Marshaller
Содержит логику преобразования данных массива в сущности.
Полезно при преобразовании данных запроса в сущности.
- Cake\ORM\Marshaller использует Cake\ORM\AssociationsNormalizerTrait
См.:
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Массив с преобразованием обозначения точкой во вложенные массивы
Сводка свойств
© 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