2016-06-10 2 views
1

제 질문은 심포니 검사기 구성 요소와 관련이 있습니다. 나는 양식을 사용하지 않습니다. 그리고 각 엔티티에 대한 유효성 검사 규칙을 분리 된 클래스 (AuthorVlidator, BookingValidator 등)로 옮기고 싶습니다. 분리 된 클래스로 이동하고 규칙을 정의하려면 어떻게해야합니까?심포니 검사기

감사합니다.

+0

정확하게 이해하면 [유효성 검사 그룹] (http://symfony.com/doc/current/book/validation.html#validation-groups) –

+0

을 찾고 있습니다. Validator 클래스에 유효성 검사 구성 요소를 삽입하고 그걸 가지고있어. 멋지게 될 필요가 없습니다. – Cerad

답변

2

왜 분리 된 클래스로 옮기시겠습니까? 주석을 사용하면 쉽게 사용할 수 있습니다.

그것은 그것을 할 수있는 좋은 생각이 아니다,하지만 당신이 정말로 다른 클래스에서 작업을 수행하려는 경우, 당신은 당신이 유효성을 검사 할 각 클래스에서이 방법을 추가 할 수 있습니다

class YourObject 
{ 
    public static function loadValidatorMetadata(ClassMetadata $metadata) 
    { 
     YourObjectValidator::validate($this, $metadata); 
    } 
} 

과 :

use Symfony\Component\Validator\Mapping\ClassMetadata; 
use Symfony\Component\Validator\Constraints\NotBlank; 

class YourObjectValidator 
{ 
    public static function validate(YourObject $object, ClassMetadata $metadata) 
    { 
     $metadata->addPropertyConstraint('name', new NotBlank()); 
    } 
} 

속성 값에 따라 추가 유효성 검사를 위해이 논리를 분리하려면 적절한 방법이 아닙니다. 문서를 읽어야합니다. callback이 해결책이 될 수 있습니다.