La mia domanda è fondamentalmente, è possibile modificare un'opzione di un campo di un incorporato per il modulo padre?Symfony2 cambia le opzioni di campo di un modulo incorporato
Per illustrare il problema, considerare questo; Ho una classe genitore tipo di modulo come questo:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
}
e un tipo di classe form figlio che si trova in un fascio separato e io preferirei non modificare, in questo modo:
class AppleFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('qty', 'integer', array('label' => 'rubbish label')
;
}
e voglio per cambiare l'etichetta di qty
in qualcos'altro, ma voglio farlo solo nello FruitForm
, non ovunque sia utilizzato lo AppleForm
. Avevo sperato di essere in grado di fare qualcosa di simile:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType(), array('qty' => array('label' => 'better label')))
;
}
o:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
$builder->get('apple')->get('qty')->setOption('label', 'better label');
}
ma nessuno di questi (e una serie di altri tentativi) hanno tutti mi fallito. Non esiste un metodo setOption
che riesco a vedere.
Qualcuno sa di un modo per farlo?
Grazie
$ opzione s = $ field-> getOptions(); non ha funzionato per me, tuttavia, $ field-> getConfig() -> getOptions() ha fatto il trucco! Grazie ancora ! – Steven
Non funziona per me –
Ha funzionato bene per me. @Steven devi usare '$ form-> get (" field ") -> getOptions()', o il campo con quel nome non esiste ancora. – Adambean