我正在使用提交表單類型在我的FormType類(我希望它爲css類和按鈕標籤定製)。Symfony2 Forms GET提交字段類型 - 刪除'名稱'參數
由於是搜索,我決定使用GET,而不是默認的POST。我注意到,在Symfony2中,就是:
- 提交場得到一個「名」參數
- 並提交表單時,在網址參數之一是一個空的「提交」(即:http://url....?phrase=searchphrase&submit)
我試圖從刪除自動genarated HTML「名」 ATTR「按鈕/提交」 HTML標籤的控制器,在表單類型級,甚至在嫩枝模板,如通過重寫「名稱」 - 對於Symfony2來說似乎沒有任何工作,並且始終生成此按鈕的名稱=「submit」。
它有一種方法可以從提交按鈕中刪除這個HTML屬性,或者我只需要自己渲染整個提交按鈕,並從Form Type類中刪除它?
模板的搜索形式是很基本的,對Symfony2中什麼了不起的事:
{{ 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) }}
而對於表單類型,我使用標準的提交:
$builder->add('submit', 'submit', array('label' => 'search', attr(name => null) ....)
正如你看到的,這裏name屬性將explicilty設置爲null。 Symfony2以任何方式生成它,並給它提交一個「提交」值給這個'名字'attr。
唯一的問題是:我可以以某種方式讓Symfony2不會在HTML按鈕/提交標籤中生成「name」attr?如果Symfony2無法做到這一點,似乎唯一的辦法就是從Form Type類中簡單地刪除「submity」,並直接將該按鈕的HTML放在模板中,我試圖不這樣做(但如果它是不可能的,我將不得不)。
對我來說,這似乎是Symfony2的一個問題。提交類型在這裏是很新的東西,我可以想象,自動生成的「name」attr遵循與Symfony2中其他表單類型相同的規則 - 儘管它在HTML表單中確實不需要!
解決方案:所以,我最終完成了自己的渲染,並從Form Type中移除它。我仍然認爲Symfony2不應該爲這個特定的標籤生成'name' - 我看到從未有過的「name」attr被分配給任何形式的SUBMIT按鈕HTML標籤,這顯然不是必需的也不是所期望的。
你應該張貼一些代碼,等等的形式和模板 – Splendonia
好吧,我把代碼,但它只是一個標準的Symfony2的形式。主要觀點是「提交」表單類型,它在自動生成時似乎在Symfony2中放置了「名稱」屬性 - 在HTML表單中確實不需要它。 – forsberg