2014-06-13 2 views
8

옵션 필드를 추가 한 후 업데이트 할 수 있습니까?심포니 폼 빌더 업데이트 옵션 필드

$builder 
    ->add('examens', 'entity', array(
     'class' => 'TelegrammeExamenBundle:ExamExamen', 
     'property' => 'libelle', 
     'required' => true, 
     'empty_value' => 'Sélectionnez un examen', 
     //'data' => $this->em->getReference("TelegrammeExamenBundle:ExamExamen", 510), 
     'data' => null, 
     'query_builder' => function(ExamenRepository $r) { 
      return $r->getSelectList(); 
     }, 
     'attr' => array('class' => 'bg_white_filet_gris') 
    )) 
; 

필드 옵션 수정 방법 ??? (setOption이 없습니다)

if (...) $builder->get('examens')->setOption('property', 'test'); 

답변

9

간단하게 ->add() 수 있습니다. API 문서가 add 방법에 대해 알 수 있듯이 : 추가하거나 형태

http://api.symfony.com/2.8/Symfony/Component/Form/FormInterface.html#method_add

에 아이를 대체 이것을 FormEvent 예를 들면 폼 요소를 수정하는 데 사용할 수 있습니다.


는 또한FormBuilder는 다음과 같이 사용할 수있는 setAttribute() 방법을 제공

$builder->get('examens')->setAttribute('property', 'test'); 
+0

확인을하지만 난 내 대답에 다른 방법을 추가 코드 중복 – stloc

+3

을 피하고자합니다. * 내부에서 * FormEvent를 사용하면이 후자의 메소드를 사용할 수 없습니다 : 이전 메소드에서 정의 된대로 폼을 다시 추가해야합니다 (빌더를 사용할 수 없기 때문에) –

+0

@ DebreczeniAndrás' $ builder-> get ('examens')'는 필드가 아닌'FormBuilder'를 반환합니다. 따라서 필드 속성이 아닌 양식 속성을 설정합니다. 나는 그것을 성취 할 수 없었다. – Sithu