如果你在mapper工厂得到它,我无法理解为什么停止使用AggregateHydrator:
$aggregatehydrator = $container->get(AggregateHydrator::class);
返回空对象。当我尝试时,我试图调试并且PHP正在死亡(多余的内存):
\Zend\debug\debug::dump($aggregatehydrator);
如果我以另一种方式得到保湿剂:
$tagsHydrator = $container->get(TagsHydrator::class);
$categoryHydrator = $container->get(CategoryHydrator::class);
$postHydrator = $container->get(PostHydrator::class);
$datesHydrator = $container->get(DatesHydrator::class);
$aggregatehydrator = new \Zend\Hydrator\Aggregate\AggregateHydrator();
$aggregatehydrator->add($postHydrator);
$aggregatehydrator->add($categoryHydrator);
$aggregatehydrator->add($tagsHydrator);
$aggregatehydrator->add($datesHydrator);
它适用于所有人。返回填充的对象。
https://bitbucket.org/mad-max/blog-note3/overview
class AggregateHydratorFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$aggregatehydrator = new AggregateHydrator();
$tagsHydrator = $container->get(TagsHydrator::class);
$categoryHydrator = $container->get(CategoryHydrator::class);
$postHydrator = $container->get(PostHydrator::class);
$datesHydrator = $container->get(DatesHydrator::class);
$aggregatehydrator->add($postHydrator);
$aggregatehydrator->add($categoryHydrator);
$aggregatehydrator->add($tagsHydrator);
$aggregatehydrator->add($datesHydrator);
return $aggregatehydrator;
}
}
答案 0 :(得分:0)
我在AggregateHydratorFactory中添加了:
$aggregatehydrator = new AggregateHydrator();
$aggregatehydrator->setEventManager($container->get('EventManager'));
答案在这里: https://github.com/zendframework/zend-hydrator/issues/40