Doctrine 2.1抽象实体,使用注释进行验证

时间:2011-12-13 19:47:20

标签: zend-framework validation annotations doctrine-orm

我的名字是丹尼斯,我真的需要你的帮助或建议或其他任何东西:)

我正在使用Zend Framework 1.11开发我的项目,并且正在使用Doctrine 2.1。 我已成功将Doctrine集成到我的ZF项目中,一切正常。我还集成了Gedmo扩展和一些我的自定义扩展。

问题在于验证。我希望通过使用注释来验证教义实体。因为我有时需要验证我的实体有时不需要,我想要那种验证,例如: $ user = new Entity \ User; $用户>的setName( '用户'); $用户>验证();

我根本不想改变学说生成的实体,因此我不会为此更改setter或使用doctrine事件。@ HasLifecycleCallbacks。 我在http://www.spiffyjr.me/2011/07/15/more-doctrine-2-and-zend-framework-integration-goodies/遇到了例子 我下载了代码,但没有设法将其投入使用。我按照该页面的说明,使我的实体扩展AbstractEntity,但是当尝试使用例如isValid()时,我收到以下错误:
[语义错误]从未导入属性Bild \ Entity \ TestTest :: $ id中的注释“@Column”。您是否忘记为此注释添加“使用”语句?

我在没有@ORM \的情况下使用doctrine注释,只使用@,(例如@Column,而不是@ORM \ Column)。我甚至试图添加ORM,但没有运气继续抛出错误。

我可以收到我的实体的元数据,获取字段映射和关联映射,但是当我尝试getPropertyAnnotation时                     //验证器注释                 $ vAnnotations = self :: _ getPropertyAnnotation($ property,self :: ZENDVALIDATION);              的var_dump($ vAnnotations);模具; 我收到了提到的语义错误。

我将错误跟踪到Doctrine \ Common \ Annotations \ AnnotationReader :: getPropertyAnnotations($ property);不返回注释但抛出错误。 您认为它可以是什么?

好像我没有做正确的事,但无法弄清楚是什么。

所以,我需要创建抽象实体,让我的实体扩展它,并通过使用注释来创建函数来验证我的实体。

所以,如果可以的话,请帮助我。我真的需要我的项目,但找不到解决方案。

提前致谢。 最好的问候。

1 个答案:

答案 0 :(得分:0)

问题是由注释阅读器的配置引起的。我在ZF1中为我的Doctrine2模型集成了Symfony2验证器服务时遇到了同样的问题,更多信息请点击此处的博文http://ssmusoke.wordpress.com/2012/03/04/doctrine-2-day-2-model-validation-using-symfony-validator-service-in-zend-framework/