2011-08-03 3 views
0

종속성 검증 (물론 좀 더 단순하지만 만 2 :)) :심포니 2 폼 나는 2 개 필드 엔티티가

class Entity 
{ 
    // boolean type 
    protected $is_public; 
    // hashed string 
    protected $password; 
} 

지금 내가 그 실체에 대한 심포니 2에서 양식을 필요로 암호 필드에 대한 다음 종속성 : 사용자가 $ is_public의 확인란을 클릭하면 암호를 입력하지 않아도됩니다. 반면에 사용자가 엔티티 (내 경우에는 사용자 그룹)를 비공개로 원할 때 적어도 N 문자 이상의 비밀번호를 입력해야합니다.

symfony2 프레임 워크와 함께 제공되는 검사기로 어떻게 할 수 있습니까? 내 목표를 달성 할 수있는 방법이 있습니까?

는 개체의 모든 속성에 액세스 할 수있는 클래스 제약 조건, 사전에

앤디

답변

2

내가 찾은 유일한 방법은 사용자 정의 Constraint를 만드는 것입니다 감사합니다. 이러한 클래스에서

봐 :

과 당신의 논리로 자신을 만들 수 있습니다.

0

유효성 검사 시간에 호출되는 콜백 함수를 지정할 수 있으며 원하는대로 처리 할 수 ​​있습니다. 여기 문서는 다음과 같습니다 당신이 번역을 사용하는 경우, 당신은 또한 addViolation 호출에서 문자열 키를 지정할 수 있습니다

http://symfony.com/doc/current/reference/constraints/Callback.html

하는 것으로.

$context->addViolation(
    'Acme\DemoBundle\Entity\MyEntity.entityField.validationErrorString1', 
    array(), null);