簡體   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