我有一个页面(我们称之为编辑页面),有两个表单 - 第一个用于更新数据库中一个表中的信息,它有一个提交按钮“保存”,另一个用于在另一个表中保留信息它有自己的按钮“添加”和一个链接“删除”来删除现有行。无论您按下“保存”、“添加”或“删除”这三个按钮,您都应该停留在同一页面。请您给我建议,这将是最好的制作方法:
当您按删除键时,我将路由到另一个 url,该 URL 会调用 deleteController,并在其中将其重定向回上一页(编辑页面)
我想不出更好的办法,因为“删除”是一个链接。请随意提出您的建议,并请告诉我的方法是否非常愚蠢或可以接受。
如何管理这两种表单?
起初我以为一个 Controller 可以管理两种表单,但有一个问题 - 我不知道 Controller 如何准确识别按下了哪个按钮(保存或添加)来执行正确的操作。当同时按下两个按钮时,它可以每次更新两个表,但我认为这是不合理的,因为大多数时候只有一个表会发生变化。
另一个想法是对删除重复相同的操作 - 使用两个不同的 Controller 来执行一些操作(更新和持久),然后重定向到编辑页面,我的目标是让用户感觉永远不会离开起始页面(编辑页面)的 url。
管理此任务的最佳方式是什么?
最佳答案
SensioGeneratorBundle
可以生成CRUD表单和 Controller 。它包含在 Symfony 标准版中。你应该看看它。生成的代码易于定制并且经过精心设计。
您的选择是正确的。您还可以使用
method="delete"
将删除按钮放入表单中,并在 Controller 中执行类似以下操作:/** * @Route("/{id}") * @Method("DELETE") * @ParamConverter("entity", class="MyAdminBundle:MyEntity") */ public function deleteAction(MyEntity $entity) { // Do deletion // ... // Do redirection $this->redirect($this->generateUrl('list')); }
您可以设置不同的
方法
(版本:POST
,创建:PUT
)。
您可以设置不同的操作
,然后进行重定向。
关于php - Controller 和 URL 的设计思路 - Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844645/