私のアプリでは、私はユーザーがあります。 各ユーザーはそう(...ホームページビュー、お問合せ先ビュー)各役割が、いくつかの権限を持つことができますエンティティのリレーションの深さをmanyToManyリレーションで選択する
を1つの役割(管理者、テスター、...) を持って、私は、多対多の関係
を持っているので、私はロールからアクセス許可と権限からロールを取得したい、私は双方向の関係を持っています。
結果例を開始する...私は許可を得るとき、それはその役割とその権限を持つそれぞれの役割を取得します。私が欲しいもの
はちょうどその役割
私の問題で1社の許可を選択することです:私が欲しいもの
{
"id": 4,
"nom": "Accès au backoffice",
"slug": "page-backoffice",
"role": [
{
"id": 1,
"libelle": "Administrateur",
"permission": [
{
"id": 3,
"nom": "Visualisation du stock global",
"slug": "page-visu-stock-global",
"role": [
{
"id": 2,
"libelle": "Responsable d'exploitation",
"permission": [
{
.......
は次のとおりです。
{
"id": 4,
"nom": "Accès au backoffice",
"slug": "page-backoffice",
"role": [
{
"id": 1,
"libelle": "Administrateur",
"slug": "administrateur"
},
{
"id": 2,
"libelle": "Responsable d'exploitation",
"slug": "responsable-exploitation"
},
....
どのようにすることができます 私がやる ?
私のORMファイル関係の詳細: Permissions.orm.yml:
manyToMany:
role:
targetEntity: Role
cascade: { }
fetch: LAZY
mappedBy: permission
inversedBy: null
joinTable: null
orderBy: null
role.orm.yml:
manyToMany:
permission:
targetEntity: Permissions
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: role
joinTable:
name: role_permission
joinColumns:
-
name: role_id
referencedColumnName: id
inverseJoinColumns:
-
name: permission_id
referencedColumnName: id
orderBy: null
あなたは[連載グループ]をご覧ください(https://symfony.com/doc/current/components/serializer.html#component-serializer-attributes-groups )と[それらを有効にする方法](https://symfony.com/doc/current/serializer.html#using-serialization-groups-annotations)を参照してください。それがあなたに役立つことを願っています – OlivierC
シリアル化を使用すると、ループのアクセス権>ロール>権限>ロールを行うデータを取得するためにdoctrineが防止されません...間違っていますか? –
あなたは怠惰なフェッチをしているので、データが必要な場合にのみ起こります。事実、あなたはオブジェクトをjsonとして提示しています。私はそれがAPI用にシリアル化されていると仮定しました。 – OlivierC