繁体   English   中英

如何在symfony2中编辑多个一对多实体?

[英]How do I edit more than one one-to-many entities in symfony2?

假设我要创建一个任务应用程序。

在这个应用程序中,我有用户,例如

id      name   
1       phil
2       anette

每个用户可以有x个任务列表,例如

id     user_id    name
1      1          test
2      1          another test
3      2          cheers

同样,每个任务列表都可以有一个任务列表,例如:

id     tasklist_id    name
1      1              very important task
2      2              important task
3      1              another task in first list
4      3              item for anette

使用Doctrine进行的实体映射工作得很好。 还集成了FOSUserBundle 我实际上可以以用户身份登录,并且可以看到自己的任务列表。

但是我无法创建一种方法,以便用户可以编辑任务列表中的任务。 还应注意,只有拥有特定任务列表的用户才可以编辑它及其子项。 通过我的方法(自动生成的Crud模板),您可以获取任何ID并更改每个内容。

我现在想到的是:

  • 如果我将任务列表ID提供给控制器(以显示特定列表的所有任务),则ID在更新后会丢失,并且将显示所有用户的所有任务。 (我通过crud generator php app/console generate:doctrine:crud创建了表单和控制器)
  • 我考虑过将任务列表ID放入会话中,但是发现这是一个不好的解决方案
  • 我尝试搜索其他方法(例如,将symfony2 pass parameter to subentitysymfony2 pass controller variable ),但是除了将控制器更改为服务之外,找不到任何与此主题相关的信息
  • 我应该创建一个服务,可能不在任务列表控制器或任务控制器之外。 但是我不确定这种方法。

关于symfony2解决此(几乎可以肯定是常见的)问题的正确方法有哪些? 如何为用户提供编辑其任务列表以及编辑特定任务的方法? 或更笼统地说,如何在symfony中编辑多个一对多关系?

您应该看看如何嵌入表单集合

关于安全性问题,这是另一回事,但是您应该在控制器中(在EditAction中)检查要尝试编辑的列表是否属于登录用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM