Php 如何在symfony2中编辑多个一对多实体?
假设我想创建一个任务应用程序 在这个应用程序中,我有一些用户,例如Php 如何在symfony2中编辑多个一对多实体?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,假设我想创建一个任务应用程序 在这个应用程序中,我有一些用户,例如 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
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
使用原则的实体映射效果良好。还集成了FOSUserBundle。实际上,我可以作为用户登录,并且可以查看自己的任务列表
但我不可能创建这样一种方法,用户可以编辑任务列表中的任务。还应该注意的是,只有拥有特定任务列表的用户才能编辑它及其子任务。通过我的方法(自动生成crud模板),您可以获取任何id并更改每个内容
我想到这一点:
- 如果我向控制器提供任务列表id(以显示特定列表中的所有任务),则更新后该id将丢失,并且将显示来自所有用户的所有任务。(我通过crud生成器
)创建了表单和控制器)php应用程序/控制台生成:条令:crud
- 我曾考虑将任务列表id放入会话中,但发现这是一个糟糕的解决方案
- 我尝试搜索不同的方法(例如,
或symfony2 pass参数到子实体
),但除了将控制器更改为服务之外,找不到与此主题相关的任何信息symfony2 pass控制器变量
- 我应该创建一个服务,可能来自任务列表控制器或任务控制器。但我不确定这种方法
关于symfony2,解决这个(几乎可以肯定是常见的)问题的正确方法有哪些?如何为用户提供编辑其任务列表以及编辑特定任务的方法?或者更一般地说,如何在symfony中编辑多个一对多关系?您应该看看
关于您的安全问题,这是另一回事,但您应该在控制器中(在EditAction中)检查您试图编辑的列表是否属于登录用户。您的第一个想法是正确的,您需要在控制器中创建一个操作,允许编辑特定的列表
ListedAction($id)
成功提交并保存子任务上的数据后,您需要使用相同的参数重定向到此操作,您的控制器中肯定已经有了所有这些逻辑,不是吗?