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