Gentics Mesh 版本:v1.5.1
介绍:
假设我们的模式A具有类型字段:列表和列表类型:节点和允许的模式:B。(见(1))。
- 已在语言en中创建了B节点的实例( b1-EN ),在de中创建了( b1-DE ) 。
- 已使用en语言创建了B节点的实例( b2-EN ) 。
- 已使用de语言创建了A节点的实例( a1-DE ),并将b1-DE和b2-EN添加到a1的节点列表 ( Bs ) 中。
结果,当在 Gentics Mesh CMS 中选择de语言时,节点a1-DE ( de ) 具有 2 个节点b1-DE、b2-EN的列表。
当应用以下 GraphQL 查询时:
{
node(path: "/a1-DE") {
... on A {
path
uuid
availableLanguages
fields {
Bs {
... on B {
path
fields {
id
}
}
}
}
}
}
}
结果是:
{
"data": {
"node": {
"path": "/a1-DE",
"uuid": "30dfd534cdee40dd8551e6322c6b1518",
"availableLanguages": [
"de"
],
"fields": {
"Bs": [
{
"path": "/b1-DE",
"fields": {
"id": "b1-DE"
}
},
{
"path": null,
"fields": null
}
]
}
}
}
}
问题:
为什么结果没有在节点列表中显示 b2-EN 节点?查询错了吗?我想得到的结果是节点的默认语言版本(b2-EN),因为b2-DE尚未贡献。所以预期的结果:
{
"data": {
"node": {
"path": "/a1-DE",
"uuid": "30dfd534cdee40dd8551e6322c6b1518",
"availableLanguages": [
"de"
],
"fields": {
"Bs": [
{
"path": "/b1-DE",
"fields": {
"id": "b1-DE"
}
},
{
"path": "/b2-EN",
"fields": {
"id": "b2-EN"
}
}
]
}
}
}
}
在文档 (2) 中:
如果未找到其他匹配内容,将应用回退到配置的默认语言。如果这也失败,将返回 Null。
有人可以启发我吗?
(1):架构
{
"name": "A",
"container": false,
"autoPurge": false,
"displayField": "id",
"segmentField": "id",
"urlFields": [
"id"
],
"fields": [
{
"name": "Bs",
"type": "list",
"label": "Bs",
"required": false,
"listType": "node",
"allow": [
"B"
]
},
{
"name": "id",
"type": "string",
"label": "id",
"required": true
}
]
}