2012-10-02 33 views
5

如何在symfony 2中设置呈现字段的名称属性?symfony 2表单字段的设置名称属性

预期输出:

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

渲染场这样

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

肯定是行不通的。

产出仍然

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

有什么办法来设置的name属性和id属性的动态?谢谢。

+1

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

回答

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

已经有test作为名称。当然,在你的情况下,仍然存在名为form的根表格名称。删除这个不是真的推荐,因为当你读取填充表单数据的请求时,你可以通过表单名称来识别表单。

[表格]启用空根形式名称https://github.com/symfony/symfony/pull/2936

1

重写枝条块这样:

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

的变化只是移动名称= {{FULL_NAME}}从第一行到最后一个,因此当您将名称attr添加到表单构建器添加元素时,名称将不再被忽略。

+0

默认情况下是文件“Symfony /桥/嫩枝/资源/图/表/ form_div_layout.html.twig” – HRoux

相关问题