Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 控制器和URL的设计思想-Symfony2_Php_Symfony - Fatal编程技术网

Php 控制器和URL的设计思想-Symfony2

Php 控制器和URL的设计思想-Symfony2,php,symfony,Php,Symfony,我有一个页面(我们称之为编辑页面),有两个表单——第一个表单用于更新数据库中一个表中的信息,它有一个提交按钮“保存”,另一个页面用于处理另一个表中的信息,它有自己的按钮“添加”和一个链接“删除”来删除现有行。无论你按下三个保存、添加或删除按钮中的哪一个,你都应该停留在同一页面上。你能告诉我哪一种是最好的制作方法吗 当您按下delete键时,我正在路由到另一个url,该url调用deleteController,它在其中重定向回上一页(编辑页) 我想不出更好的办法了,因为删除是一个链接。请随意提出

我有一个页面(我们称之为编辑页面),有两个表单——第一个表单用于更新数据库中一个表中的信息,它有一个提交按钮“保存”,另一个页面用于处理另一个表中的信息,它有自己的按钮“添加”和一个链接“删除”来删除现有行。无论你按下三个保存、添加或删除按钮中的哪一个,你都应该停留在同一页面上。你能告诉我哪一种是最好的制作方法吗

  • 当您按下delete键时,我正在路由到另一个url,该url调用deleteController,它在其中重定向回上一页(编辑页)

    我想不出更好的办法了,因为删除是一个链接。请随意提出你的建议,并请告诉我我的方式是非常愚蠢的还是可以接受的

  • 如何管理这两种形式

  • 起初,我认为一个控制器可以管理两个表单,但有一个问题——我不知道控制器如何准确地识别按下了哪个按钮(保存或添加)来执行正确的操作。它可以每次更新两个表,就像同时按下两个按钮一样,但我认为这是不合理的,因为大多数时候只有一个表会有变化

  • 另一个想法是对Delete重复相同的操作-使用两个不同的控制器来执行一些操作(更新和持久化),然后重定向到编辑页面,我的目标是让用户感觉从未离开起始页面(编辑页面)的url

  • 管理此任务的最佳方法是什么?

    可以生成CRUD表单和控制器。它在Symfony标准版中提供。你应该看看。生成的代码很容易定制,并且设计良好


  • 你做了正确的选择。您还可以将删除按钮放入带有
    method=“delete”
    的表单中,并在控制器中执行类似操作:

    /**
    *@Route(“/{id}”)
    *@方法(“删除”)
    *@ParamConverter(“实体”,class=“MyAdminBundle:MyEntity”)
    */
    公共函数deleteAction(MyEntity$实体)
    {
    //删除
    // ...
    //做重定向
    $this->redirect($this->generateUrl('list'));
    }
    
  • 您可以设置不同的
    方法(编辑:
    POST
    ,创建:
    PUT
    )。
    您可以设置不同的
    操作
    ,然后执行重定向