2013-03-21 5 views
2

1 대 1의 관계 및 양식을 채우는 두 개의 엔티티 (A와 B라고합시다)가 있습니다.Symfony2 모든 필드가 비어있을 때 하위 폼 유효성 검사를 수행합니다.

엔티티 A : 상태 0 엔티티 B : 상태 1 엔티티 B : 필드 1 채워진 필드 2

엔티티 빈 두 필드 다음 B 엔티티 필드 엔티티 A의 상태에 따라 채워 빈

엔티티 A : 주 2 엔티티 B : 필드 1 빈 필드 2는 충전 상태가 허용되지 않습니다

두 필드를 가득 채웠다.

그래서 3 개의 사용자 정의 콜백 유효성 검사기를 만들어 상태 1, 2를 확인하고 허용되지 않았습니다. 필드가 비어 있기 때문에 불행히도 상태 1과 2를 확인하는 것은 두 필드가 모두 비어있는 경우 트리거되지 않습니다. 폼에 가짜 숨겨진 필드를 추가하면 폼이 채워지기 때문에 유효성 검사 프로세스가 시작됩니다!

분명히 이것은 해킹 된 솔루션이므로 모든 양식 필드가 비어있는 경우에도 하위 폼 유효성 검사를 강제하는 방법이 있는지 궁금합니다.

답변

0

Symfony는 양식의 유효성을 검사하지 않으며 엔티티의 유효성을 검사합니다.

http://symfony.com/doc/2.1/book/validation.html#getters 나는 당신의 사건에 대한 생각

는, 검증을 가지고 기업이와 관련된 하나입니다 : 당신의 최선의 최선은 기관의 검증 기능을하고 심포니의 '게터'검증이 여기에 설명 된 사용의 유효성을 검사하는 것입니다 양식 유형.

+0

설명해 주셔서 감사합니다. 그러나 이미 @Assert \ Callbacks 주석에 의해 호출 된 콜백 유효성 검사 메소드가 있습니다. 그래서이 방법을 사용하여 오류 메시지를 적절한 필드 또는 필드로 설정하는 것을 선호합니다. –

관련 문제