Estoy usando Symfony2 y CraueFormFlowBundle para crear un formulario de varios pasos. Todo va bien, excepto el campo de mi correo electrónico repetido. No puedo, por el bien de mí, encontrar cómo poner las etiquetas que quiero. Estoy renderizando el formulario yo solo en la vista de Twig usando form_widget (...) y escribiendo las etiquetas. Posiciono todo siguiendo lo que mi cliente quiere. Ahora, desea ver las etiquetas de correo electrónico como "E-mail *" y "Confirmar correo electrónico *" (las estrellas, ya que son necesarias). Si represento los elementos repetidos usando form_row(), los errores ya no se muestran en el formulario (pero tengo control sobre las etiquetas, ajuste). La única forma de mostrar errores (no me preguntes por qué), es mediante el uso de form_widget (form.giver.email) que apunta a todo el objeto de elemento repetido. El problema es que usar form_widget para representar todo el elemento repetido no me da control sobre las etiquetas.Symfony2 forma etiquetas personalizadas de elementos repetidos
Al representar todo el elemento repetido, imprime las etiquetas usando los parámetros "first_name" y "second_name". No puedo poner letras mayúsculas ni guiones ni estrellas en estos parámetros por razones obvias. Si trato de configurar la etiqueta en el conjunto de opciones, esa etiqueta se pasa a ambos campos como se describe en el documento de Symfony2 ...
Intenté imprimir usando ".first" y ".second" en twig, pero Aparece un error que indica que estos no existen en FormView.
¡Ahora todo lo que quiero es poder configurar las dos etiquetas por separado! Aquí está mi código actual:
$builder->add('email', 'repeated', array(
'type' => 'email',
'first_name' => 'email',
'second_name' => 'confirm',
'invalid_message' => 'The e-mails you provided did not match.',
'error_bubbling' => false
));
Esto imprime las etiquetas como "correo electrónico" y "confirmar". Aquí está utilizando el conjunto de "opciones":
$builder->add('email', 'repeated', array(
'type' => 'email',
'first_name' => 'email',
'second_name' => 'confirm',
'invalid_message' => 'The e-mails you provided did not match.',
'error_bubbling' => false,
'options' => array(
'label' => "TESTTT"
),
));
Esto imprimirá la etiqueta "TESTTT" en ambos campos repetidos. ¿Hay algo que pueda hacer al respecto? Como se mencionó anteriormente, el uso de form_row() no muestra los errores en el envío del formulario si los correos electrónicos no son iguales o si están en blanco. Así que estoy obligado a usar form_widget() y representar todo el objeto repetido.
Gracias de antemano por su tiempo.
Si uno está trabajando dentro de la 'FormBuilder' (o Formulario Tipos) la sintaxis sería '$ formBuilder-> get ('passwordFieldName') -> get ('second') -> setAttribute ('label', 'Enter password again');' – Nick