首页 > 解决方案 > API 平台 - 有条件的急切加载

问题描述

我有 3 个实体,其中 2 个是全球性的,并且有公司关系。

用户角色、角色、配置。

UserRoles 和 Roles 是全局的,Configuration 是基于公司的。

我想要实现的是,当我调用 UserRoles 集合时,我有角色的规范化上下文,并且角色有配置的规范化上下文,我需要所有用户角色和角色的列表,但想按公司 ID 过滤配置。

我尝试使用 ACL 扩展和 DataProviders,但它仅适用于子资源调用。

{
"@id": "/api/user-roles/238870305571864576",
"@type": "UserRole",
"type": "onboarding",
"icon": null,
"thirdParty": false,
"sorting": 1,
"roles": [
    {
        "@id": "/api/roles/238870305567670278",
        "@type": "Role",
        "configurations": [
            {
                "@id": "/api/configurations/238870305756413952",
                "@type": "Configuration",
                "role": "/api/roles/238870305567670278",
                "confValue": "865734",
                "id": "238870305756413952"
            },
            {
                "@id": "/api/configurations/238870305756413955",
                "@type": "Configuration",
                "role": "/api/roles/238870305567670278",
                "confValue": "172599",
                "id": "238870305756413955"
            },
            {
                "@id": "/api/configurations/238870305756413957",
                "@type": "Configuration",
                "role": "/api/roles/238870305567670278",
                "confValue": "467563",
                "id": "238870305756413957"
            }
        ],
        "name": "activationKey",
        "type": "string",
        "required": false,
        "sorting": 1,
        "id": "238870305567670278"
    },
    {
        "@id": "/api/roles/238870305567670279",
        "@type": "Role",
        "configurations": [
            {
                "@id": "/api/configurations/238870305756413953",
                "@type": "Configuration",
                "role": "/api/roles/238870305567670279",
                "confValue": "2021-05-28T11:53:25+00:00",
                "id": "238870305756413953"
            },
            {
                "@id": "/api/configurations/238870305756413956",
                "@type": "Configuration",
                "role": "/api/roles/238870305567670279",
                "confValue": "2021-05-28T11:53:25+00:00",
                "id": "238870305756413956"
            }
        ],
        "name": "activationDate",
        "type": "datetime",
        "required": false,
        "sorting": 2,
        "id": "238870305567670279"
    }
]

这是我现在的响应示例,您可以看到角色实体中的配置。

有没有办法将 QueryBuilder 函数应用到这个问题上,或者你只需​​要为这个问题创建自定义端点。

先感谢您。

标签: symfonyapi-platform.com

解决方案


推荐阅读