当在GraphQL中使用自定义标识符时,OneToMany关系会返回nullwrong数据。

问题描述 投票:1回答:1

我使用的是 api平台 使用Symfony 5构建GraphQl API。

当使用 自定义标识符 不是主键,OneToMany结果集就会返回空或错误的数据。造成这个问题的原因是当从OneToMany表中获取数据时,使用了自定义标识符值而不是主键。

例子

表Blog有一个自定义标识符slug和主键id。此表与表Image有一个OneToMany关系。

这些是在获取数据时进行的查询。

SELECT b0_.id AS id_0, b0_.content AS content_1,  b0_.slug AS slug_3 FROM blog b0_ WHERE b0_.slug = "highest peak"

SELECT i0_.id AS id_0, i0_.src AS src_1 FROM image i0_ WHERE i0_.blog_id = "highest peak" ORDER BY i0_.id ASC LIMIT 30

当从图片中获取数据时,Blog ID应该在参数中发送,但使用了slug。

然而,在REST中一切都很好。在使用GraphQL时遇到了问题。

symfony graphql doctrine api-platform.com symfony5
1个回答
0
投票

从2.5.6降级到2.5.4后,问题得到解决。

可能的问题

srcBridgeDoctrineOrmSubresourceDataProvider.php在2.5.5版本上进行了更新。

© www.soinside.com 2019 - 2024. All rights reserved.