微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ApiPlatform-GraphQL-获取带有序列化组的映射实体字段

如何解决ApiPlatform-GraphQL-获取带有序列化组的映射实体字段

受影响的API平台版本:v2.5.7(在PHP 7.4上为symfony v4.4.13)

说明
使用序列化组,我想显示链接资源的字段。 例如,一个User一个Organization

App \ Entity \ User

 * @ApiResource(
 *     normalizationContext={"groups"={"User:read"}},*     denormalizationContext={"groups"={"User:write"}},*     graphql={
 *         "item_query"={"normalization_context"={"groups"={"User:read"}}},*         "collection_query"={"normalization_context"={"groups"={"User:read"}}},*     }
 * )
[....]
    /**
     * @Groups({"User:read"})
     * @ORM\ManyToOne(targetEntity="Organization",inversedBy="users")
     * @ORM\JoinColumn(name="organization_id",referencedColumnName="id",nullable=true)
     */
    private $organization;

App \ Entity \ Organization

 * @ApiResource(
 *     graphql={
 *         "item_query"={"normalization_context"={"groups"={"Organization:read"}}},*         "collection_query"={"normalization_context"={"groups"={"Organization:read"}}},*     }
 * )
[...]
    /**
     * @Groups({"User:read"})
     * @ORM\Column(type="string",length=255,unique=true)
     */
    private $name;

我要执行此请求:

  users {
    edges {
      node {
        email,organization {
          id,name
        }
      }
    }
  }
}

属性名称不在文档中,并且请求失败,并显示错误Cannot query field \"name\" on type \"Organization\".

如何复制
这是一个要复制的github项目:https://github.com/bastoune/api-platform-test-project/tree/issue/SerializationGroups

其他上下文
这种行为在Rest上完全有效

这可能与此问题有关:https://github.com/api-platform/api-platform/issues/1636

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。