如何在"删除"中添加css类Symfony2枝条模板的按钮?

时间:2014-11-27 04:43:13

标签: symfony twig symfony-forms

我是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>

所以,按钮看起来像现在 -

enter image description here

但我希望它像 -

enter image description here

所以,我生成的代码应该看起来像 -

<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) }}

我怎么能用树枝来做呢???

4 个答案:

答案 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) }}