我在从嵌套连接joinByArray
– joinByOne
获取片段数据时遇到问题。我试图在连接中使用投影过滤器并忽略它们-它不起作用(以不同的方式,但是结果是相同的-没有连接的零件数据)。
这是我的设置。我定义了两个部分:
作者:
extend: 'apostrophe-pieces',
name: 'author',
// ...
addFields: [
{
name: 'photo',
label: 'Photo',
required: true,
type: 'singleton',
widgetType: 'apostrophe-images',
options: {
limit: [ 1 ]
}
},
// ...
出版物:
extend: 'apostrophe-pieces',
name: 'publication',
// ...
addFields: [
{
name: '_author',
label: 'Author',
type: 'joinByOne',
withType: 'author',
idField: 'authorId',
filters: {
projection: {
slug: 1,
type: 1,
tags: 1,
title: 1,
photo: 1
}
}
},
// ...
然后我创建了这样的出版物页面:
extend: 'apostrophe-pieces-pages',
name: 'publications-page',
// ...
addFields: [
{
name: '_featured',
label: 'Featured Publications',
type: 'joinByArray',
withType: 'publication',
idsField: 'featuredIds',
filters: {
projection: {
slug: 1,
title: 1,
type: 1,
// ...
_author: 1
}
},
relationship: [
// ...
]
},
// ...
您可以看到_featured
是应该在页面顶部显示的精选出版物列表,然后是其他出版物上的列表。我需要所有数据以正确显示它们,包括作者的姓名(title
)和照片。
问题是在Nunjucks模板中我得到了:
authorId
仅在我将projection
用于_featured
加入时使用projection
参加_featured
,出版物的一般列表(可通过Nunjucks data.pieces
模板中的index.html
获得)是完美的,并且包含所有数据。 data.page._featured
不能。
我的问题:是否有一种方法可以告诉Apostrophe CMS从上述嵌套连接中获取数据?那么要在“出版物”页面上获取“精选”出版物的作者作品数据?
我喜欢这种设置,并且我希望保持这种方式。但是,如果我需要更改某些内容(例如,在singleton
上使用joinByOne
代替),我也可以尝试一下。
答案 0 :(得分:1)
我认为您想将withJoins: true
添加到您的_featured
联接配置中