类 Marshaller
包含将数组数据转换为文档对象的逻辑。
在将请求数据转换为文档时非常有用。
属性摘要
-
$index protected
Cake\ElasticSearch\Index
此marshaller所属的索引实例。
方法摘要
-
__construct() public
构造函数
-
_prepareDataAndOptions() protected
返回准备用于验证和marshal的数据和选项。
-
_validate() protected
根据传递的选项返回数据集的验证错误
-
createAndHydrate() protected
创建和Hydrate Document,同时遵守accessibleFields等
-
many() public
Hydrate 一组实体。
-
merge() public
将
$data
合并到$document
中。 -
mergeMany() public
更新一组实体。
-
mergeNested() protected
合并一个嵌入式文档。
-
newNested() protected
Marshal 一个嵌入式文档。
-
one() public
Hydrate 单个文档。
方法详情
__construct() ¶ public
__construct(Cake\ElasticSearch\Index $index)
构造函数
参数
-
Cake\ElasticSearch\Index
$index 此marshaller所属的索引实例。
_prepareDataAndOptions() ¶ protected
_prepareDataAndOptions(array $data, array $options): array
返回准备用于验证和marshal的数据和选项。
参数
-
array
$data 要准备的数据。
-
array
$options 传递给此marshaller的选项。
返回
array
_validate() ¶ protected
_validate(array $data, array $options, bool $isNew): array
根据传递的选项返回数据集的验证错误
参数
-
array
$data 要验证的数据。
-
array
$options 传递给此marshaller的选项。
-
bool
$isNew 是否为新实体或要更新的实体。
返回
array
抛出
RuntimeException
如果无法创建验证器。
createAndHydrate() ¶ protected
createAndHydrate(string $class, array $data, array $options = [], string $indexClass = null): Cake\ElasticSearch\Document
创建和Hydrate Document,同时遵守accessibleFields等
参数
-
string
$class 要创建的Document的类名
-
array
$data 要Hydrate的数据
-
array
$options optional 控制Hydration的选项
-
string
$indexClass optional 要从其中获取嵌入的索引类(用于嵌套)
返回
Cake\ElasticSearch\Document
many() ¶ public
many(array $data, array $options = []): array
Hydrate 一组实体。
选项
- fieldList:要分配给实体的字段白名单。如果不存在,将使用实体中的可访问字段列表。
- accessibleFields:允许或拒绝实体可访问字段中的字段列表。
参数
-
array
$data 您希望转换为对象的实体数据列表。
-
array
$options optional 选项
返回
array
merge() ¶ public
merge(Cake\Datasource\EntityInterface $entity, array $data, array $options = []): Cake\Datasource\EntityInterface
将 $data
合并到 $document
中。
选项
- fieldList:要分配给实体的字段白名单。如果不存在,将使用实体中的可访问字段列表。
- associated:您希望marshal的嵌入式文档列表。
参数
-
Cake\Datasource\EntityInterface
$entity 将获得合并数据的实体
-
array
$data 要合并到实体中的字段的键值列表
-
array
$options optional 选项列表。
返回
Cake\Datasource\EntityInterface
mergeMany() ¶ public
mergeMany(iterable $entities, array $data, array $options = []): array
更新一组实体。
将 $data
中的每个元素合并到 $entities
中的每个实体中。
$data
中的记录使用id字段与实体匹配。无法与 $data
中的任何记录匹配的 $entities
中的条目将被丢弃。无法匹配的 $data
中的记录将被marshal为新实体。
选项
- fieldList:要分配给实体的字段白名单。如果不存在,将使用实体中的可访问字段列表。
参数
-
iterable
$entities Elasticsearch 实体数组
-
array
$data 您希望转换为对象的实体数据列表。
-
array
$options optional 选项
返回
array
mergeNested() ¶ protected
mergeNested(Cake\ElasticSearch\Association\Embedded $embed, Cake\ElasticSearch\Document|array $existing, array $data): Cake\ElasticSearch\Document|array
合并一个嵌入式文档。
参数
-
Cake\ElasticSearch\Association\Embedded
$embed 嵌入定义。
-
Cake\ElasticSearch\Document|array
$existing 现有的实体或实体。
-
array
$data 要marshal的数据
返回
Cake\ElasticSearch\Document|array
newNested() ¶ protected
newNested(Cake\ElasticSearch\Association\Embedded $embed, array $data, array $options = []): Cake\ElasticSearch\Document|array
Marshal 一个嵌入式文档。
参数
-
Cake\ElasticSearch\Association\Embedded
$embed 嵌入定义。
-
array
$data 要marshal的数据
-
array
$options optional 要传递的选项
返回
Cake\ElasticSearch\Document|array
one() ¶ public
one(array $data, array $options = []): Cake\ElasticSearch\Document
Hydrate 单个文档。
选项
- fieldList:要分配给实体的字段白名单。如果不存在,将使用实体中的可访问字段列表。
- accessibleFields:允许或拒绝实体可访问字段中的字段列表。
- associated:您希望marshal的嵌入式文档列表。
参数
-
array
$data 要Hydrate的数据。
-
array
$options optional 选项列表
返回
Cake\ElasticSearch\Document