Nuevo en Symfony 4.1: mensajes de ayuda en formularios
Mostrar mensajes de ayuda en algunos campos de formulario es una necesidad muy habitual en las aplicaciones web. Sin embargo, el componente Form no proporciona esta funcionalidad, por lo que tenías que crearte una extensión de formularios como la siguiente:
namespace App\Form\Extension; use Symfony\Component\Form\AbstractTypeExtension; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; class HelpMessageExtension extends AbstractTypeExtension { public function getExtendedType() { return FormType::class; } public function buildView(FormView $view, FormInterface $form, array $options) { $view->vars['help'] = $options['help'] ?? ''; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(['help' => null]); } }
Y después crearte tu propio tema de formularios para mostrar el mensaje:
{% use "bootstrap_4_layout.html.twig" %} {% block form_row %} {# ... #} {% if form.vars.help ?? false %} <div class="form--help">{{ form.vars.help }}</div> {% endif %} {% endblock form_row %}
En Symfony 4.1, todo esto ya no será necesario porque puedes definir el mensaje
de ayuda de los campos de formulario mediante su opción help
:
// ... $builder->add('email', null, [ 'help' => 'Make sure to add a valid email', ]);
Y así es como se ve el mensaje cuando utilizas nuestro tema de Bootstrap 4:
Gracias a nuestra apuesta por la inclusión y la diversidad tenemos muy en
cuenta la accesibilidad en todo lo que hacemos, así que hemos actualizado los
temas de formulario para que incluyan el atributo aria-describedby
en los
campos que tienen un mensaje de ayuda.
Por último, si personalizas los formularios de Symfony, ahora podrás hacer
uso de una nueva función de Twig llamada form_help()
, que se une a las
conocidas funciones form_row()
, form_label()
, etc.
Esta funcionalidad fue contribuida por Mathieu Piot en el pull request #26332.
Fuente: New in Symfony 4.1: Form field help
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.