Apostrophe CMS:在嵌套连接(joinByArray – joinByOne)中获取片断数据

时间:2018-12-15 06:43:28

标签: apostrophe-cms

我在从嵌套连接joinByArrayjoinByOne获取片段数据时遇到问题。我试图在连接中使用投影过滤器并忽略它们-它不起作用(以不同的方式,但是结果是相同的-没有连接的零件数据)。

这是我的设置。我定义了两个部分:

作者:

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代替),我也可以尝试一下。

1 个答案:

答案 0 :(得分:1)

我认为您想将withJoins: true添加到您的_featured联接配置中