2014-06-13 16 views
8

Eklendikten sonra bir seçenek alanını güncelleştirmek mümkün mü?Symfony form oluşturucu güncelleştirme seçeneği alanı

$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') 
    )) 
; 

alan seçeneğini nasıl değiştirirsiniz ??? basitçe ->add() onu tekrar yapabilirsiniz

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

cevap

9

(setOption yoktur). API belgeleri add yöntemi için anlaşılacağı gibi: ekler veya form

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

bir çocuk yerine Bu FormEvent örneğin form öğeleri değiştirmek için kullanılabilir.


AlternatifFormBuilder aşağıdaki gibi kullanılabilecek bir setAttribute() yöntem sağlar:

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

Tamam ama benim cevap için başka bir yöntem eklendi kod tekrarını – stloc

+3

önlemek istiyorum. Unutmayın ki * bir 'FormEvent 'içinden bu ikinci metodu kullanamazsınız: formu eski metodda tanımlandığı gibi tekrar eklemeniz gerekir (orada kurucunuz olmadığı için) –

+0

@ DebreczeniAndrás' $ builder-> get ('examens') 'formBuilder'i döndürür, alanı değil. Bu nedenle, form özniteliğini ayarlar, alan özniteliğini değil. Bunu başaramadım. – Sithu

İlgili konular