Zend Framework 2 - Hydrator strategy not responding and hydrating

▼魔方 西西 提交于 2019-12-19 11:54:34

问题


I implemented basically this strategy.

The main difference is (I guess) that I use Doctrine2.

The constructor class is called (a test echo is printed) but the two functions extract() and hydrate() are not.

I added the strategy as follows:

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

A kind-of similar issue was posted here.

Maybe the problem is in the way how I add this strategy. But I honestly don't know...

Would be great if somebody could give me a hint what I'm doing wrong.


回答1:


Please refer to this post, for a cleaner and more appropriate solution!

Zend Framework 2 - Hydrator strategy for Doctrine relationship not working




回答2:


@Sam solved this problem on GitHub.

This is a problem that is commonly happening currently. The thing is: addStrategy() is a thing of ZF2's ClassMethodHydrator - this hydrator is used silently within DoctrineEntity. To add custom Strategies, simply do not use DoctrineEntity but use ClassMethodsHydrator itself. On ClassMethods then you'll be able to add Strategies

You may also take a look at this Issue/PR doctrine/DoctrineModule#106

My code now looks like this:

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

BTW: The underscore in the attribute doesn't cause any problems

Unfortunately I stumbled upon another foreign-key-relation-based issue, it seems even a Doctrine issue. But I'll open a new question for this.



来源:https://stackoverflow.com/questions/14140447/zend-framework-2-hydrator-strategy-not-responding-and-hydrating

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!