2012-03-12 3 views
4

Symfony2에서 전체 엔티티의 복잡한 사용자 정의 유효성 검사를 수행 할 수 있어야합니다.Symfony2 전체 엔티티에 대한 유효성 확인

예 : 내 entity 많은 subentities을 가지고 있으며, 모든 subentities이 Symfony2는 단일 필드의 유효성을 확인 검사기 지금까지 내가 추측 할 수있는 100

에 합계해야합니까?

답변

6

대답은 예입니다. 매개 변수가 아닌 오브젝트에 대한 제한 조건을 지정하고 클래스 레벨 제한 조건 인 제한 조건을 지정해야합니다. 다소 자세한 예는 이것이다 :

config.yml

validator.my.uniquename: 
    class: FQCN\To\My\ConstraintValidator 
    arguments: [@service_container] 
    tags: 
    - { name: validator.constraint_validator, alias: ConstraintValidator } 

validation.yml

FQCN\To\My\Entity: 
    constraints: 
    - FQCN\To\MyConstraint: ~ 

내 제약

(이 예에서는 제약 없음 인수)
namespace FQCN\To; 

use 
    Symfony\Component\Validator\Constraint 
    ; 

/** 
* @Annotation 
*/ 
class MyConstraint extends Constraint 
{ 
    public $message = 'Constraint not valid'; 

    public function validatedBy() 
    { 
    return 'ConstraintValidator'; 
    } 

    public function getTargets() 
    { 
    # This is the important bit. 
    return self::CLASS_CONSTRAINT; 
    } 
} 

My ConstraintValidator

class MyConstraintValidator extends ConstraintValidator 
{ 
    protected $container; 

    function __construct($container) 
    { 
    $this -> container = $container; 
    } 

    function isValid($object, Constraint $constraint) 
    { 
    # validation here. 
    return true; 
    } 
} 
+0

제약 조건 인 MyBundle \ Validator \ Constraint를 해결할 수있는 팁은 속성 또는 가져 오기 도구에 넣을 수 없습니까? – greg

+0

@ 개체 및 향후 방문자를 위해 ABOVE 클래스 선언 위에 제약 조건 주석을 추가해야합니다. – keyboardSmasher

+0

답변 작성시 더 정확한 결과를 제공하십시오. –

관련 문제