在 GraphQL returns null/wrong 数据中使用自定义标识符时的 OneToMany 关系

OneToMany relation when using custom identifier in GraphQL returns null/wrong data

我正在使用 api-platform 和 Symfony 5 来构建 GraphQl API。

当使用 custom identifier 不是主键时,OneToMany 结果集 returns 为空或错误数据。这个问题是因为从 OneToMany table 获取数据时,使用了自定义标识符值而不是主键。

例子

Table 博客有一个自定义标识符 slug 和主键 id。此 table 与 Table 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

从图像中获取时,应在参数中发送博客 ID,但使用了 slug。

但是,在 REST 中一切正常。使用 GraphQL 时遇到问题。

从 2.5.6 降级到 2.5.4 解决了这个问题。

可能的问题

src/Bridge/Doctrine/Orm/SubresourceDataProvider.php 已在版本 2.5.5

上更新