2012-01-12 3 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, 
    ); 
}