給定兩個實體Permission
和Group
及其關係實體GroupPermission
,我想從任何Group
對象中獲得相關的Permission
。最佳實踐:如何從一個實體獲得相關實體
這裏是我的實體(簡化)說明:
----------
Permission
----------
permissionId
name
-----
Group
-----
groupId
name
----------------
GroupPermission
----------------
groupPermissionId
groupId
permissionId
除了我的三個文檔類(描述Permission
,Group
和GroupPermission
對象),我有三個倉庫類(包含所有數據庫相關邏輯)。
理想情況下,我希望能夠做到$anyGroup->getPermissions()
,並直接獲取所有Permission
對象。
由於實體應該對其存儲庫(以及其他實體存儲庫)一無所知,因此我不知道實現此類行爲的最佳實踐是什麼。
編輯:繼@KhorneHoly回答我補充一定限制:
我的文檔類實現以易於序列化到JSON的JsonSerializable
類。 因此,我有以下方法描述瞭如何做到這一點:
public function jsonSerialize()
{
return array(
'groupId' => $this->getGroupId(),
'name' => $this->getName(),
);
}
而且我想訪問從那裏權限,包括他們在JSON。
public function jsonSerialize()
{
return array(
'groupId' => $this->getGroupId(),
'name' => $this->getName(),
'permissions' => $this->getPermissions()
);
}
我知道這種方法,但我有時需要直接在文檔類中使用相同的行爲。我已經按照編輯我的問題。 –
@fef我看不到您的問題。如果您在控制器內部使用'json_serialize'函數,您只需從repo獲得權限並將其添加到數組中。 – KhorneHoly
由於此方法經常使用,因此我不需要手動添加它們。 特別是當我做一些像'返回新的JsonResponse(數組('組'=> $ arrayContainingMultipleGroups))' –