Без пагинации на картинке проще всего добавить обратное соединение.
Если свойства имеют это поле:
{
name: '_agents',
type: 'joinByArray',
withType: 'agent'
}
Тогда агенты могут получить это свойство, чтобы получить список свойств, которые присоединяют к им, как поле _properties
:
{
name: '_properties',
type: 'joinByArrayReverse',
reverseOf: '_agents'
}
С пагинацией на картинке это зависит. Если мы говорим о, возможно, 100 свойствах на агента, я бы сказал, чтобы использовать эту технику и, при желании, реализовать разбиение на страницы самостоятельно на уровне шаблона. Если на одного агента приходится более 100 свойств, может оказаться целесообразным реализовать собственный запрос свойств, задав для этого курсора perPage()
и используя toCount()
для получения счетчика, а затем повторив запрос с toArray()
, используя perPage()
и page()
для указания номера страницы. Это именно то, что apostrophe-pieces-pages
делает для нумерации страниц, поэтому вы можете позаимствовать их там.
В долгосрочной перспективе было бы более идеальным, если бы можно было указать нумерацию страниц в конфигурации для объединений и обратных объединений в Apostrophe.