当前位置:  开发笔记 > 编程语言 > 正文

Symfony2 - 在CRUD操作中使用Delete表单

如何解决《Symfony2-在CRUD操作中使用Delete表单》经验,为你挑选了2个好方法。

symfony生成的自动crud操作以及symfony演示应用程序具有以下用于删除操作的代码结构

    /**
     * Deletes a testing entity.
     *
     * @Route("/{id}", name="testing_delete")
     * @Method("DELETE")
     */
    public function deleteAction(Request $request, testing $testing)
    {
        $form = $this->createDeleteForm($testing);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->remove($testing);
            $em->flush();
        }

        return $this->redirectToRoute('testing_index');
    }

    /**
     * Creates a form to delete a testing entity.
     *
     * @param testing $testing The testing entity
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm(testing $testing)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('testing_delete', array('id' => $testing->getId())))
            ->setMethod('DELETE')
            ->getForm()
        ;
    }

我的问题是为什么我们需要一个表格来删除?我们只是在树枝上有一个相应的id参数设置链接,不能我们只是做以下,为什么我们需要检查isValid()表格中的实体是否删除它之前?

    /**
     * test delete
     * @Route("/{id}", name="testing_delete")
     * @Method("DELETE")
     */
    public function deleteAction(testing $testing) {
        $em = $this->getDoctrine()->getManager();
        $em->remove($testing);
        $em->flush();
        return $this->redirectToRoute('testing_showall');
    }

Ashok Chitro.. 9

如果你使用链接删除id,机器人可以通过循环删除你的数据.

在Symfony操作中检查"DELETE"方法以及crsf令牌是否使用方法验证isValid"$ form-> isValid()"

这是安全的原因,它创建形式和验证



1> Ashok Chitro..:

如果你使用链接删除id,机器人可以通过循环删除你的数据.

在Symfony操作中检查"DELETE"方法以及crsf令牌是否使用方法验证isValid"$ form-> isValid()"

这是安全的原因,它创建形式和验证



2> xabbuh..:

不使用简单的链接来删除数据表示HTTP中的安全方法的概念(如果您只有一个简单的链接,则必须向GETURL 发送请求):

按照惯例,某些方法(例如,HEAD,GET,OPTIONS和TRACE)被定义为安全,这意味着它们仅用于信息检索,不应更改服务器的状态.换句话说,它们不应该有副作用[...]

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有