2011-12-06 26 views
6

Theo mặc định một form_row(form.name) được trả lại như một cái gì đó như:Làm thế nào để thay đổi hành vi form_row trong Symfony 2/cành

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

Làm thế nào/nơi tôi có thể thay đổi hành vi của form_row() để ví dụ:

<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> 
+0

[Cách tùy chỉnh hiển thị biểu mẫu] (http://symfony.com/doc/current/form/form_customization.html#cookbook-form-theming-methods) – Trix

Trả lời

17

Bạn có thể kiểm tra URL này: http://symfony.com/doc/2.0/cookbook/form/form_customization.html#cookbook-form-theming-methods

Có một đoạn về tùy chỉnh form_row().

Dưới đây là một ví dụ đơn giản. Theo mặc định, form_row() sẽ tạo ra một cấu trúc đơn giản html như thế này:

TWIG:

{{ 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> 

Vì vậy, theo các tài liệu, bạn có thể tạo ra một cành lá mới mẫu và thêm class = "form_row" để bao quanh trường và nhãn. Đặt nó trong YourBundle/views/Form/fields.html.twig và đặt đoạn mã sau trong đó:

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

Trong mẫu tập tin của bạn, thêm dòng sau:

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

Bây giờ, form_row mẫu từ tệp bạn đã tạo sẽ được sử dụng và sẽ trả lại mã HTML sau:

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

Hy vọng rằng nó sẽ giúp ích.

+1

Bạn đã đúng, trả lời được cập nhật. – mkrowiarz

Các vấn đề liên quan