2016-10-12 2 views
2

엔티티가 작성, 업데이트 또는 삭제 될 때 엔티티 독트린을 다르게 검증해야합니다.Symfony - INSERT, UPDATE 또는 DELETE에서 엔티티를 다르게 확인합니다.

내 엔티티 클래스에 엔티티 제약 조건 검사기가 있습니다.

// src/AppBundle/Entity/AcmeEntity.php 
use AppBundle\Validator\Constraints as AcmeAssert; 

/** 
* @AcmeAssert\CustomConstraint 
*/ 
class AcmeEntity 
{ 
    // ... 
    protected $name; 

    // ... 
} 

내 CustomConstraint에서는 특정 유효성 검사기를 실행하기 위해 개체가 업데이트, 생성 또는 삭제되는지 확인해야합니다.

작업 단위를 사용하는 것이 해결책입니까?

가장 좋은 방법은 무엇입니까?

나는이 문제가 많은 응용 분야에서 일반적이라고 생각합니까?

감사의 모두를)

+3

symfony2 유효성 검사 그룹을 사용하여 다른 제한 조건 유효성 검사기로 전환하는 것이 좋습니다. – Matteo

답변

3

당신은 validation groups based on the submitted data를 사용하거나 유효성 검사 그룹을 전달하여 양식을 만들 itwhen 처리 할 수있는 중. 예를 들어, 컨트롤러에서 양식을 만들 때;

$form = $this->createForm(new AcmeType(), $acme, ['validation_groups' => ['create']]); 

엔티티는 다음과 같습니다.

/** 
    * Get name 
    * 
    * @Assert\Length(min=2, max=11, groups={"create", "update"}) 
    * @AcmeAssert\ContainsAlphanumeric(groups={"create"}) // only applied when create group is passed 
    * @return string 
    */ 
    public function getName() 
    { 
     return $this->name; 
    } 
+0

실제로 goups를 사용하여 유효성 검사를 수행하고 Entity 유효성 검사기를 실행하기 전에 유효성 검사 유형을 결정하는 것이 더 논리적입니다. 당신의 대답에 감사드립니다! –