我基本上实现了this strategy。
主要区别在于(我猜)我使用Doctrine2
。
调用构造函数类(打印测试回显)但是extract()
和hydrate()
这两个函数不是。
我添加了如下策略:
$hydrator = new DoctrineEntity($entityManager);
$hydrator->getHydrator()->addStrategy('my_attribute', new MyHydrationStrategy());
$form->setHydrator($hydrator);
类似的问题是posted here。
也许问题在于我如何添加此策略。但老实说,我不知道......
如果有人能给我一个暗示我做错的话会很棒。
答案 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
issue。 But I'll open a new question for this。