Pregunta

Por defecto a form_row(form.name) se representa como algo así como:

<div><label for="form_name" class=" required">Name</label><input type="text" id="form_name" name="form[name]" required="required" maxlength="45" value=""></div>

¿Cómo/dónde puedo cambiar el comportamiento de form_row() a por ejemplo:

<div class="someClassName"><label for="form_name" class=" required">Name</label></div><div class="someOtherClassName"><input type="text" id="form_name" name="form[name]" required="required" maxlength="45" value=""></div>
¿Fue útil?

Solución

Puede verificar esta URL: http://symfony.com/doc/2.0/cookbook/form/form_customization.html#cookbook-form-theming-metods

Hay un párrafo sobre personalizar Form_row ().

Aquí hay un ejemplo simple. Por defecto, form_row () crearía una estructura HTML simple como esta:

RAMITA:

{{ form_row(form.email, { 'label' : 'Your email address' }) }}

HTML:

<div>
    <label for="register_email" class=" required">Your email address</label>
    <input type="email" id="register_email" name="register[email]" required="required" />
</div>

Entonces, de acuerdo con los documentos, puede crear una nueva plantilla de ramita y agregar class = "Form_row" para rodear el campo y la etiqueta. Colóquelo en YourBundle/Views/Form/Fields.html.twig y coloque el siguiente código allí:

{% block field_row %}
<div class="form_row">
    {{ form_label(form) }}
    {{ form_errors(form) }}
    {{ form_widget(form) }}
</div>
{% endblock field_row %}

En su archivo de plantilla, agregue la siguiente línea:

{% form_theme form 'YourBundle:Form:fields.html.twig' %}

Ahora, la plantilla Form_row de ese archivo que creó se utilizará y devolverá el siguiente código HTML:

<div class="form_row">
    <label for="register_email" class=" required">Email</label>        
    <input type="email" id="register_email" name="register[email]" required="required" />
</div>

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top