Apostrophe CMS: получение кусочных данных во вложенном соединении (joinByArray - joinByOne) - PullRequest
0 голосов
/ 15 декабря 2018

У меня проблемы с получением данных куска из вложенного соединения: 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 присоединиться

Общий список публикаций (доступно через data.pieces в шаблоне Nunjucks index.html), является ИДЕАЛЬНЫМ и содержит все данные.В то время как data.page._featured НЕ делает.

МОЙ ВОПРОС: есть ли способ сообщить Apostrophe CMS для получения данных из вложенных объединений, как указано выше?Таким образом, чтобы получить данные об авторе для "избранных" публикаций на странице публикаций?

Мне нравится эта настройка, и я бы предпочел оставить ее в таком виде.Но если мне нужно что-то изменить (например, использовать singleton вместо joinByOne), я тоже могу попробовать.

1 Ответ

0 голосов
/ 15 декабря 2018

Я думаю, что вы хотите добавить withJoins: true к вашей _featured конфигурации присоединения

...