我需要有关使用带有method = GET的Symfony2.1表单和干净的URL空间的帮助.
我正在创建一个"过滤器",我想在URL中设置,以便人们可以为他们的链接添加书签.
所以,非常简单的代码:
$form = $this->createFormBuilder($defaultData)
->add('from', 'date', array('required' => false, 'widget' => 'single_text', 'format' => 'dd.MM.yyyy'))
Run Code Online (Sandbox Code Playgroud)
我渲染表单小部件,一切都很好.
但是,当我提交表单时,它会产生非常丑陋的GET参数:
/app_dev.php/de/event?form%5Bfrom%5D=17.11.2012
Run Code Online (Sandbox Code Playgroud)
这是因为输入名称当然是 form[from]
所以为了清理URL空间,我自己做了一个主题:
{% block widget_attributes %}
{% spaceless %}
id="{{ id }}" name="{{ id }}"{% if read_only %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}{% if pattern %} pattern="{{ pattern }}"{% endif %}
{% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %}
{% endspaceless %}
{% endblock …Run Code Online (Sandbox Code Playgroud) 如何在symfony 2中设置渲染字段的名称属性?
预期产量:
<input type="text" name="test" value="test" />
Run Code Online (Sandbox Code Playgroud)
以这种方式渲染场
{{ form_widget(form.test, { 'attr': {'name': 'test'} }) }}
Run Code Online (Sandbox Code Playgroud)
绝对不行.
输出仍然是
<input type="text" name="form[test]" value="test" />.
Run Code Online (Sandbox Code Playgroud)
有没有办法动态设置name属性或id属性?谢谢.