2012-07-24 4 views
5

내 validation.yml이 주어 이상의 유효성 검사 오류 메시지를 제공합니다 :심포니-2

task: 
     - Email: 
       message: The email "{{ value }}" is not a valid email. 
     - MinLength: { limit: 50, message: You must be 50 or under to enter. } 

내 문제는 내가 작업 필드에서 "잘못된-이메일"을주는 경우는이 오류 메시지를 제공한다는 것입니다 :

The email "wrong-email" is not a valid email. 
You must be 50 or under to enter. 

사실 한 번에 하나의 오류 메시지 만 표시하려고합니다. 즉 유효한 전자 메일 인 경우에만 유효성 검사 "MinLength"를 확인해야합니다.

답변

6

유효성 검사 시퀀싱은 그룹 시퀀스를 사용하여 수행 할 수 있습니다. 오늘 YAML 드라이버에 대한 그룹 순서를 고정 시켰으므로 2.0 또는 master 분기의 다음 릴리스를 기다려야 할 수도 있습니다. 그룹의 모든 제약 "MyEntity"(즉, 기본 그룹) 성공할 경우

MyEntity: 
    group_sequence: [MyEntity, Extra] 
    properties: 
     task: 
      - Email: { message: ... } 
      - MinLength { limit: 50, message: ..., groups: Extra } 

이제 그룹의 제약은 "추가"은 확인됩니다.

+1

다른 필드 (기본값 MyEntity 그룹에 속하는)에서 유효성 검사가 실패한 것처럼 들리면 '전자 메일'이 통과 되어도 'MinLength'유효성 검사가 중지됩니다. 그럴까요? 나는 다른 필드에 관계없이 실패 할 때까지 각 필드의 유효성을 검사하는 솔루션을 원합니다. – Craig

+1

비슷한 해결책 찾기 @Craig. 그 당시 ZF1의 'breakChainOnFailure' 옵션과 같은 것 : http://framework.zend.com/manual/1.12/en/zend.form.elements.html - SF2 @webmozart에서 이걸 가지고 있습니까? – webDEVILopers