如何解决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 举报,一经查实,本站将立刻删除。