2013-03-06 47 views
4

我花了几个小时用这个把我的头撞在墙上。无论如何,我的表单字段的标签都没有出现。Zend Framework 2表单注释被忽略,没有额外的空间

最后发现,如果没有光标所在的额外空间(请参见图片),所有注释都会被忽略。我使用ZF 2.1.1和Doctrine Common 2.2.3。

我做错了什么?或者这是ZF还是Doctrine解析器中的错误?

Eclipse screenshot

作品:

class LoginForm 
    { 
    /** @Annotation\Type("text") 
    * @Annotation\Options({"label":"Store ID:"}) 
    * @Annotation\Required(true) 
    * @Annotation\Filter({"name":"StringTrim"}) 
    * @Annotation\Validator({"name":"StringLength","options":{"min":2,"max":64}}) 
    */ 
    public $sStoreId; 
    } 

失败,除非有一个空间之后/ **:

class LoginForm 
    { 
    /** 
    * @Annotation\Type("text") 
    * @Annotation\Options({"label":"Store ID:"}) 
    * @Annotation\Required(true) 
    * @Annotation\Filter({"name":"StringTrim"}) 
    * @Annotation\Validator({"name":"StringLength","options":{"min":2,"max":64}}) 
    */ 
    public $sStoreId; 
    } 
+0

我将所有的@Annotations都忽略了。我投入@Annotation \ ErrorCheckThisIsPoorlyMade()没有发生错误。是什么赋予了? – cr125rider 2013-03-06 23:19:27

+1

另外,我确实发现我必须添加使用Zend \ Form \ Annotation; 到班级的顶部。它在注释中使用快捷键“Annotation”,您需要为该类定义命名空间。 – cr125rider 2013-03-13 14:28:29

+0

是的,需要'使用Zend \ Form \ Annotation;'。 – Arthur 2013-03-13 14:33:47

回答

1

似乎是无解所以使用原来的问题提供的解决方法之一:

  • 添加一个空格后/ **(很容易忘记)
  • 把第一个注释或任何文本与/ **同一行发表评论
1

由于注释使用的是PHP-doc的标准,第一行总是用于评论/描述。它必须被给出。如果您没有提供评论/说明,请将该行留空。

+0

空行不起作用。我需要将第一个注释直接放在/ **行中,或者在其中放置一些文本(丑陋)或使用空格 – Arthur 2013-03-06 13:34:48

+0

您是否可以发布复制和粘贴代码示例? – Roman 2013-03-06 13:49:02

+0

发布到原始问题。 – Arthur 2013-03-06 14:28:39