我是Symfony的新人。我的Symfony版本是2.5.7我使用“generate:doctrine:crud
”生成了一个CRUD。
每个条目的视图中都有一个删除按钮。我想在按钮内添加css类。
对于此按钮,生成的代码为 -
{{ form(delete_form) }}
通过浏览器检查,我得到了 -
<button type="submit" id="form_submit" name="form[submit]">Delete</button>
我已将生成的树枝代码修改为 -
{{ form_widget(delete_form, {'attr': {'class': 'btn btn-danger btn-lg'}}) }}
通过浏览器检查,我得到了 -
<div id="form" class="btn btn-danger btn-lg">
<div>
<button type="submit" id="form_submit" name="form[submit]">Delete</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" value="JrBKKEdf1F8hBDYIzu0TP9a4fauKvmlPMGg3rHwwA3w">
</div>
所以,按钮看起来像现在 -
但我希望它像 -
所以,我生成的代码应该看起来像 -
<div>
<button type="submit" id="form_submit" name="form[submit]" class="btn btn-danger btn-lg">Delete</button>
</div>
我试过了,但它不起作用 - 它只是显示正常的删除按钮,因为没有包含类 -
{{ form_widget(delete_form.submit, { 'label': 'Delete' }, { 'attr': {'class': 'btn btn-danger btn-lg', 'type': 'button'} }) }}
顺便说一下,如果没有以下的枝条代码,删除按钮就不会删除条目 -
{{ form(delete_form) }}
我怎么能用树枝来做呢???
答案 0 :(得分:3)
我已经解决了问题.. :)但不是来自twig ..来自控制器..我已经将css类添加到createDeleteForm()
方法......
private function createDeleteForm($id)
{
return $this->createFormBuilder()
->setAction($this->generateUrl('book_delete', array('id' => $id)))
->setMethod('DELETE')
->add('submit', 'submit', array('label' => 'Delete',
'attr' => array('class' => 'btn btn-danger btn-lg')))
->getForm()
;
}
但我认为,这不是好习惯.. :(
答案 1 :(得分:2)
删除{ 'label': 'Delete' }
,它应该有效。这是一个例子:
{{ form_widget(delete_form.submit, { 'attr': {'class': 'btn btn-danger btn-lg', 'type': 'button'} }) }}
答案 2 :(得分:0)
扩展Zed's答案,但我还需要另一种语言的标签,除了TWIG模板之外没有任何其他内容:
{{ form_widget(delete_form.submit, {'label': 'Usuń', 'attr': {'class': 'btn btn-danger btn-lg', 'type': 'button', 'title': 'DELETE'} }) }}
稍后在同一页面上,更改了默认的“更新”按钮:
{{ form_widget(edit_form.submit, {'label': 'Zapisz', 'attr': {'class': 'btn btn-save btn-lg', 'type': 'button', 'title': 'UPDATE'} }) }}
答案 3 :(得分:0)
All the answers here works to add the class to the submit button. However, if one just uses this line with delete_form.submit the form won't work. The complete answer is:
{{ form_start(delete_form) }}
{{ form_widget(delete_form.submit, { 'attr': {'class': 'btn btn-danger', 'type': 'button'} }) }}
{{ form_end(delete_form) }}
As it is explained on the doc, form_widget doesn't render the form start and end tags:
{# renders all fields #}
{{ form_widget(form) }}
{# renders all fields *and* the form start and end tags #}
{{ form(form) }}