【发布时间】:2019-05-17 00:26:46
【问题描述】:
我使用 Api-Platform 和 React 作为客户端。
我有一个包含其他对象的论坛实体:作者(用户实体)和类别(类别实体)。
我用@Groups 注释嵌入了这些实体,以便更轻松地检索它们。
例如,当我在 Postman 上获取 /api/forums/ 时,我得到以下结果:
{
"@context": "/api/contexts/Forum",
"@id": "/api/forums",
"@type": "hydra:Collection",
"hydra:member": [
{
"@id": "/api/forums/79",
"@type": "Forum",
"id": 79,
"subject": "Sujet numéro 0",
"message": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"category": {
"@id": "/api/categories/183",
"@type": "Category",
"title": "Category 2"
},
看起来不错:我们可以看到我的类别对象链接到 hydra:member 数组中的论坛,以及一个“标题”字段。
但我注意到,我真正得到的结果在我的所有嵌套对象的反应应用程序中是不同的。 我只得到 IRI..
例如具有相同的请求:
...
fetch('forums')
.then(response =>
response
.json()
.then(retrieved => ({ retrieved, hubURL: extractHubURL(response) }))
)
.then(({ retrieved, hubURL }) => {
retrieved = normalize(retrieved);
...
我得到这个结果:
{
"@context": "/api/contexts/Forum",
"@id": "/api/forums",
"@type": "hydra:Collection",
"hydra:member": [
{
"@id": "/api/forums/79",
"@type": "Forum",
"id": 79,
"subject": "Sujet numéro 0",
"message": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"category": "/api/categories/183",
“类别”上的所有其他字段都消失了,我不明白为什么。
谁能帮我解决这个问题?
提前致谢
【问题讨论】: