在Symfony2中为删除表单添加"confirm-option"的最佳方法是什么?

Pau*_*ean 4 confirm controller crud symfony

如果使用控制台在Symfony2中为实体创建CRUD代码,则最终会得到一个非常基本的删除功能.

这个功能精简高效,但没有提供"你确定吗?" - 确认.如果要删除的实体存在,则会立即删除.

有没有人有最简单的添加用户确认方法的建议?

到目前为止,我一直在使用:

  • 额外的控制器功能
  • jQuery的

虽然Symfony2没有内置选项,但似乎有点奇怪.谁有更好的想法?

jpb*_*ter 9

您还可以使用其他属性呈现表单的基本删除字段:

在你的树枝模板里面:

{{ form(delete_form, {'attr': {'onclick': 'return confirm("Are you sure?")'}}) }}
Run Code Online (Sandbox Code Playgroud)


rpa*_*anm 7

只需在删除链接上使用确认javascript功能即可

<a href="{{ path('delete_route', {csrf:...}) }}" onclick="return confirm('are u sure?')">delete</a>
Run Code Online (Sandbox Code Playgroud)


Cat*_*mor 5

一个问题:

{{ form(delete_form, {'attr': {'onclick': 'return confirm("Are you sure?")'}}) }}

是不是它会导致弹出一个双重确认框。更好的解决方案是将其放置在 deleteForm 上的控制器内...

private function createDeleteForm($id)
{
    return $this->createFormBuilder()
        ->setAction($this->generateUrl('my_controller_delete', array('id' => $id)))
        ->setMethod('DELETE')
        ->add('submit', 'submit', array('label' => 'Delete',
                'attr' => array(
                        'onclick' => 'return confirm("Are you sure?")'
                )))
        ->getForm();
} 
Run Code Online (Sandbox Code Playgroud)

然后 onclick 函数在按钮上而不是在表单上。