0

我基本上实施了这个策略

主要区别是(我猜)我使用Doctrine2.

构造函数类被调用(打印了一个测试回显),但是这两个函数extract()hydrate()没有。

我添加的策略如下:

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

在这里发布了一种类似的问题。

也许问题在于我添加此策略的方式。但老实说我不知道​​...

如果有人能给我一个提示我做错了什么,那就太好了。

4

2 回答 2

1

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

Zend Framework 2 - Doctrine 关系的 Hydrator 策略不起作用

于 2013-01-03T19:20:03.123 回答
0

@Sam在 GitHub 上解决了这个问题。

这是目前普遍存在的问题。问题是:addStrategy() 是 ZF2 的 ClassMethodHydrator 的一个东西——这个 hydrator 在 DoctrineEntity 中静默使用。要添加自定义策略,只需不要使用 DoctrineEntity 而是使用 ClassMethodsHydrator 本身。在 ClassMethods 上,您将能够添加 Strategies

你也可以看看这个问题/公关学说/DoctrineModule#106

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

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

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

不幸的是,我偶然发现了另一个基于外键关系的问题,它似乎甚至是一个Doctrine 问题但我会为此提出一个新问题

于 2013-01-03T15:35:19.353 回答