2016-09-27 7 views
2

Symfony에서 폼을 동적으로 유효화하려고합니다. 엔티티 필드의 값에 따라 "payed"라는 이름의 유효성 검사 그룹을 활성화하려고합니다. 다음 코드를 사용합니다 :Symfony validation_groups 엔터티 값을 얻는 방법

public function configureOptions(OptionsResolver $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'MyBundle\Entity\Account', 
     'validation_groups' => function (FormInterface $form) { 

      // Set always default 
      $valarr = ['Default']; 

      $business = $form->get('business')->getData(); 
      if($business == true) $valarr[] = "business"; 

      // This needs to be added in pending on entity field value 
      if(???) $valarr[] = "payed"; 

      return $valarr; 
     }, 
    )); 
} 

이 양식이이 기능으로 활성화 된 컨트롤러에서 내 엔티티를 어떻게 얻을 수 있습니까? 비즈니스를 위해 양식에서 직접 값을 얻을 수 있으므로 작동합니다.

+0

메서드 $ form-> getData()가 개체를 반환해야합니다. 계정을 사용해 볼 수 있습니까? – Matteo

답변

1

Matteo는 의견 에서처럼 $form->getData()->$fieldname을 사용하여 값을 얻을 수 있습니다.

if ($form->getData()->$fieldname === 'my_special_value') { 
    $valarr[] = "payed"; 
} 
+1

와우 그것은 매력처럼 작동합니다. 고맙습니다 – Learner