Mi pregunta básicamente es, ¿es posible cambiar una opción de un campo de un incrustado desde el formulario principal?Opciones de campo de cambio de Symfony2 de un formulario incrustado
Para ilustrar el problema, considere esto; Tengo una clase formulario primario tipo así:
class FruitFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('apple', new AppleFormType())
;
}
y una clase de tipo de formulario secundario que está en un paquete separado y yo preferiría no editar, así:
class AppleFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('qty', 'integer', array('label' => 'rubbish label')
;
}
y quiero para cambiar la etiqueta de qty
a otra cosa, pero quiero hacerlo solo en el FruitForm
, no en todas partes donde se usa AppleForm
. Tenía la esperanza de ser capaz de hacer algo como:
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');
}
pero ninguno de estos (y un número de otros intentos) todos me han fallado. No existe un método setOption
que pueda ver.
¿Alguien sabe de una manera de hacer esto?
Gracias
$ option s = $ campo-> getOptions(); no funcionó para mí, sin embargo, $ field-> getConfig() -> getOptions() hizo el truco! Gracias de nuevo ! – Steven
No funciona para mí –
Funcionó bien para mí. @Steven necesita usar '$ form-> get (" campo ") -> getOptions()', o el campo con ese nombre aún no existe. – Adambean