2012-01-12 15 views
5

フィールドを検証するための登録フォームを作成しました。私RegistrationFormTypeで は、私は次のコードを持っている:フォームフィールドの複数の制約を再度検証する

public function getDefaultOptions(array $options) 
    { 
     $collectionConstraint = new Collection(array(
      'email' => new Collection(array(
       new NotBlank(), 
       new Email(array('message' => 'Invalid email addressadsfa')), 
       )), 
      'username' => new Email(array('message' => 'arg Invalid email addressadsfa')), 
      'code' => new MaxLength(array('limit'=>20)), 
      'plainPassword' => new MaxLength(array('limit'=>20)), 
     )); 

     return array(
      'csrf_protection' => false, 
      'validation_constraint' => $collectionConstraint, 
     ); 
    } 

問題は次のとおりです。電子メールの検証は動作しません。私は間違って何をしていますか?

答えて

16

電子メールエントリをコレクションにする必要はありません。単純な配列を使用してください。従って:

public function getDefaultOptions(array $options) 
{ 
    $collectionConstraint = new Collection(array(
     'email' => array(
      new NotBlank(), 
      new Email(array('message' => 'Invalid email addressadsfa')), 
     ), 
     'username' => new Email(array('message' => 'arg Invalid email addressadsfa')), 
     'code' => new MaxLength(array('limit'=>20)), 
     'plainPassword' => new MaxLength(array('limit'=>20)), 
    )); 

    return array(
     'csrf_protection' => false, 
     'validation_constraint' => $collectionConstraint, 
    ); 
} 
関連する問題