在 Apigility 中,可以通过 Apigility UIHydrator
为每个设置一个Entity
或直接在 中module.config.php
,例如:
return array(
...
'zf-hal' => array(
'metadata_map' => array(
'Portfolio\\V2\\Rest\\Project\\ProjectEntity' => array(
'entity_identifier_name' => 'id',
'route_name' => 'portfolio.rest.project',
'route_identifier_name' => 'id',
'hydrator' => 'Zend\\Stdlib\\Hydrator\\ObjectProperty',
// 'hydrator' => 'MyNamespace\\Hydrator\\ProjectHydrator',
),
...
),
...
),
...
);
另请参阅文档。
目前我正在ClassMethods
为我的所有实体使用水合器。
现在我尝试将设置更改为自定义水合器。我还尝试了另一种 Zend 水合器。但无论我做什么,只有我在 `module.config.php 中定义的水合物会被忽略。
编辑:它适用于单个实体,但不适用于集合。我已经用调试器检查了这个并看到:当我检索一个集合时,我的自定义水合器不会被调用。我不知道实际使用的是哪个 hydrator —— 我设置了断点,甚至在所有 hydrator的and方法中都写了die()
s ( , , , , 以及我的 custom ),但是应用程序根本没有注意到这一点并且仍在工作。似乎是这样,根本没有补水……extract()
hydrate()
ArraySerializable
ClassMethods
ObjectProperty
Reflection
ProjectHydrator
这里有什么问题以及如何使水合设置正常工作?