Php Symfony2表单获取提交字段类型-删除';名称';param
我在FormType类中使用submit表单类型(我想为css类和按钮标签定制它) 由于这是一个搜索,我决定使用GET,而不是默认的POST。我在Symfony2中注意到的是:Php Symfony2表单获取提交字段类型-删除';名称';param,php,forms,symfony,get,Php,Forms,Symfony,Get,我在FormType类中使用submit表单类型(我想为css类和按钮标签定制它) 由于这是一个搜索,我决定使用GET,而不是默认的POST。我在Symfony2中注意到的是: 提交字段获取一个“name”参数 提交表单时,url中的一个参数是空的“提交”(即:) 我试图从controller中的“button/submit”HTML标记、表单类型类中,甚至在Twig模板中删除自动生成的HTML“name”attr,例如,通过覆盖“name”,Symfony2似乎不起作用,并且始终生成此按钮
- 提交字段获取一个“name”参数
- 提交表单时,url中的一个参数是空的“提交”(即:)
{{ form_start(form) }}
<div>
{{ form_widget(form.target) }}
</div>
<div>
{{ form_widget(form.phrase) }}
{{ form_widget(form.submit) }}
</div>
{{ form_errors(form) }}
{{ form_end(form) }}
如您所见,这里name attr被显式设置为null。Symfony2以任何方式生成它,并将其“提交”值赋给此“名称”属性
唯一的问题是:我能让Symfony2不在HTML按钮/提交标签中生成“name”attr吗?如果Symfony2不能做到这一点,似乎唯一的方法就是简单地从表单类型类中删除“submity”,然后自己将该按钮的HTML直接放在模板中,而我正试图不这么做(但如果不可能,我将不得不这样做)
对我来说,这似乎是Symfony2的一个问题。提交类型在这里的表单中是非常新的东西,我可以想象自动生成的“name”attr与Symfony2中的其他表单类型遵循相同的规则-尽管HTML表单中确实不需要它
解决方案:因此,我最终自己绘制了它,并将其从表单类型中删除。但我认为Symfony2不应该为这个特定的标记生成“name”——我从未见过“name”attr被指定在web上以任何形式提交按钮HTML标记,这显然是不需要的,也是不可取的。我认为有三种解决方案:
你应该发布一些代码,比如表单和模板OK,我写了一些代码,虽然它只是一个标准的Symfony2表单。主要的一点是“提交”表单类型,它在自动生成时似乎在Symfony2中放了“name”attr,在HTML表单中确实不需要它。嗯,我认为你是不对的。正如我提到的,我可以从中删除“name”attr“button/submit”HTML标记(或将其设为空)-然后它不会作为GET参数传递到URL。我在我的Symfony2应用程序中检查了这一点。抱歉,误解。我将编辑响应。
$builder->add('submit', 'submit', array('label' => 'search', attr(name => null) ....)