Symfony: Suprimir el nombre del formulario del nombre de los campos
08/11/2016
|Por Yoné Rocha
Symfony, por defecto, genera el nombre de los campos del formulario usando un array con el nombre de formulario, como sigue a continuación:
XHTML
1 | <input type="text" name="form[myField]" value="" /> |
Pero hay casos en lo que nos interesa que el nombre sea independiente al formulario. Por ejemplo, cuando el formulario se envía a un sistema de terceros, que no controlamos, y nos piden un nombre de campo determinado:
XHTML
1 | <input type="text" name="myField" value="" /> |
Usando namedBuilder y asignando el primer parámetro a null, podemos suprimir en el nombre del formulario del nombre de los campos:
1 2 3 4 | $form = $this->get('form.factory')->createNamedBuilder(null, 'form', $data, ['attr' => ['id' => 'myForm']]) ->setMethod('POST') ->add('myField', TextType::class, array()) //Symfony < 3.x se usa 'text' en lugar de TextType::class ->getForm(); |
Si usamos un Custom Form Type, también podemos conseguir el mismo resultado. Sólo debemos devolver null en el método getName():
1 2 3 4 | public function getName() { return null; } |