如何将同一行中的记录添加/保存到数据库?-Symfony 3



我使用Symfony 3.4,我想让用户从索引(显示所有记录的索引)中添加/编辑/删除记录,而不是单击添加/编辑或删除按钮并打开新页面。我一直在研究这个问题,但找不到任何有用的东西。我知道我们必须使用javascript来向表中添加行,但我如何才能在行中使用表单来执行crud选项,并修改数据库。你能给我一个线索吗?

这里有几个问题;-)

综述:

您有一个项目列表(我在示例中使用tasks)

  1. 您想直接在列表页面上添加/编辑/删除项目
  2. 您想将项目映射到数据库

根据您使用的不同,有多种可能的解决方案。

JS前端

您可以在React/VueJS/Wanything中构建您的列表。

当您添加/删除/编辑task时,您将触发对API的XHR/AJAX请求。您必须实现API端点并使用它们。

例如

GET /api/tasks=>返回所有任务的JSON

DELETE /api/tasks/7=>删除ID为7的任务

POST /api/tasks=>创建了一个新任务

PUT /api/tasks/{id}=>使用ID更新任务。附加带有名称等的JSON正文

Symfony表格

您也可以使用符号形式。您正在查找集合字段类型。

allow_addallow_delete选项将成为您的朋友。

然后,您可以使用这些对象将对象存储到数据库中。例如,使用DoctrineRM或您想要的任何东西:-)

请参阅处理表单提交

但是要小心。这不适用于大型列表,因为它将删除数据库中不在此页面上的所有元素。如果你想对你的列表进行分页,这不是你想要的。

我的看法

您希望允许添加/删除项目。我的猜测是您正在构建一些后端应用程序(?)。

为了简单起见,我推荐一个JS解决方案。您的API-Endpoints将是安静、简单且易于定制的。

Symfony表单可能很复杂。如果你想朝这个方向发展,我建议你阅读这篇关于symfony表单的博客文章。

最新更新