Zend Framework 2 - Hydrator策略无响应和保湿

时间:2013-01-03 14:05:19

标签: php doctrine-orm zend-form zend-framework2

我基本上实现了this strategy

主要区别在于(我猜)我使用Doctrine2

调用构造函数类(打印测试回显)但是extract()hydrate()这两个函数不是。

我添加了如下策略:

$hydrator = new DoctrineEntity($entityManager);
$hydrator->getHydrator()->addStrategy('my_attribute', new MyHydrationStrategy());
$form->setHydrator($hydrator);

类似的问题是posted here

也许问题在于我如何添加此策略。但老实说,我不知道......

如果有人能给我一个暗示我做错的话会很棒。

2 个答案:

答案 0 :(得分:1)

请参阅这篇文章,以获得更清晰,更合适的解决方案!

Zend Framework 2 - Hydrator strategy for Doctrine relationship not working

答案 1 :(得分:0)

@Sam解决了这个问题on GitHub

  

这是目前常见的问题。问题是:addStrategy()是ZF2的ClassMethodHydrator的东西 - 这个水合器在DoctrineEntity中默默使用。要添加自定义策略,只需不要使用DoctrineEntity,而是使用ClassMethodsHydrator本身。在ClassMethods上,您将能够添加策略

     

您也可以查看此问题/ PR doctrine/DoctrineModule#106

我的代码现在看起来像这样:

$hydrator = new ClassMethodsHydrator();
$hydrator->addStrategy('my_attribute', new MyHydrationStrategy());
$form->setHydrator($hydrator);

BTW:属性中的下划线不会导致任何问题

不幸的是,我偶然发现了另一个基于外键关系的问题,它似乎只是Doctrine issueBut I'll open a new question for this