2012-10-02 37 views
5

Làm thế nào để đặt thuộc tính tên của trường được hiển thị trong symfony 2?Đặt tên thuộc tính của trường biểu mẫu symfony 2

sản lượng dự kiến:

 <input type="text" name="test" value="test" /> 

Rendering lĩnh vực này theo cách này

 {{ form_widget(form.test, { 'attr': {'name': 'test'} }) }} 

chắc chắn không hoạt động.

Output vẫn là

 <input type="text" name="form[test]" value="test" />. 

Có cách nào để thiết lập các thuộc tính tên hoặc id thuộc tính tự động? Cảm ơn bạn.

+1

xem http://stackoverflow.com/questions/8416783/symfony2-form-component-creating-fields-without-the-forms-name-in-the-name-att – max

Trả lời

1
<input type="text" name="form[test]" value="test" /> 

đã có test làm tên. Tất nhiên vẫn có tên gốc của tên gọi là form trong trường hợp của bạn. Loại bỏ điều này là không thực sự khuyến khích, bởi vì khi bạn đọc yêu cầu để điền dữ liệu biểu mẫu, bạn có thể xác định biểu mẫu theo tên biểu mẫu của nó.

đọc [Mẫu] Enable trống gốc tên hình thứchttps://github.com/symfony/symfony/pull/2936

1

trọng Twig khối theo cách này:

{% block widget_attributes -%} 
id="{{ id }}" 
{%- if read_only %} readonly="readonly"{% endif -%} 
{%- if disabled %} disabled="disabled"{% endif -%} 
{%- if required %} required="required"{% endif -%} 
{%- for attrname, attrvalue in attr -%} 
    {{- " " -}} 
    {%- if attrname in ['placeholder', 'title'] -%} 
     {{- attrname }}="{{ attrvalue|trans({}, translation_domain) }}" 
    {%- elseif attrvalue is sameas(true) -%} 
     {{- attrname }}="{{ attrname }}" 
    {%- elseif attrvalue is not sameas(false) -%} 
     {{- attrname }}="{{ attrvalue }}" 
    {%- endif -%} 
{%- endfor -%} 
name={{full_name}} 
{%- endblock widget_attributes %} 

Sự thay đổi chỉ được di chuyển name = {{FULL_NAME}} từ dòng đầu tiên cái cuối cùng, vì vậy khi bạn thêm tên attr vào phần tử thêm của trình tạo biểu mẫu, tên sẽ không bị bỏ qua nữa.

+0

Theo mặc định là tệp "Symfony/Cầu/Twig/Tài nguyên/xem/Biểu mẫu/form_div_layout.html.twig " – HRoux

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