Php Can';无法让Symfony验证工作

Php Can';无法让Symfony验证工作,php,symfony,validation,Php,Symfony,Validation,我正在尝试为我的注册表添加一些验证,但我无法让它工作,到目前为止,我已经添加了我的用户实体 片段 class User { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $userid; /** * @ORM\Column(type="string", length=30) */ protected $username; 为此

我正在尝试为我的注册表添加一些验证,但我无法让它工作,到目前为止,我已经添加了我的用户实体

片段

class User {

/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
   protected $userid;

/**
 * @ORM\Column(type="string", length=30)
 */
 protected $username;
为此,我在包中添加了validation.yml

# src/Blomster/UserBundle/Resources/config/validation.yml

Blomster/UserBundle/Entity/User:
    properties:
        username:
            - NotBlank: ~
            - MinLength: { limit: 3, message: "Username is too short." }
            - MaxLength: { limit: 15, message: "Username is too long." }
使用$form->isValid()总是返回true,所以我尝试使用var\u转储我的表单

      'validation_groups' => null
      'validation_constraint' => null
      'constraints' => 
        array (size=0)
          ...
表单本身工作得很好,提交时会添加到我的数据库中,我是否需要以某种方式向表单添加约束

添加了UserType.php

class UserType extends AbstractType {

  public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder->add('username', null, array('label' => 'Username'));
    $builder->add('email', 'email', array('label' => 'Email'));
    $builder->add('password', 'repeated', array(
        'type' => 'password',
        'required' => true,
        'first_options' => array('label' => 'Password'),
        'second_options' => array('label' => 'Repeat password'),
      ));
  }

  public function getDefaultOptions(array $options) {
    return array('data_class' => 'Blomster\UserBundle\Entity\User');
  }

  public function getName() {
    return 'user';
  }
}

您需要使用长度限制:

        - MinLength: { limit: 3 }
        - MaxLength: { limit: 15 }
是文档


事实上:您需要指定一个限制,因为您还可以设置其他选项,如消息等。

我已经添加了您的更正,但是,它仍然没有向表单添加约束。我已经更新了这个问题。在dev env上运行时是否需要这样做?没有工作想法:/n没有,但我很容易在使用APC时遇到缓存问题(即使您在开发中也会遇到),所以在所有配置更改、svn更新等之后,我会清除所有(APC/app/cache)缓存。事实上,我对此表示怀疑。如果没有类似于
验证:{enable_annotations:true}
,您是否可以签入config.yml,在这种情况下,验证可能会从实体本身获取长度参数。我已尝试关闭apc,但这是缓存问题。:)enable_annotations:true出现在我的confnig.yml中。不知何故,这可能与形式有关吗?