在 Apostrophe Pieces 中检索多对一关系的反向连接
Retrieving reverse joins on a many-to-one relationship in Apostrophe Pieces
我有一个模式定义了 client
到 clientType
的关系,如下所示:
{
name: '_clientType',
label: 'Client Type',
type: 'joinByOne',
withType: 'client-type',
idField: 'clientTypeId',
filters: {
projection: {
slug: 1,
title: 1
}
}
}
在我的 clientType
模块(apostrophe-pieces-pages
的扩展)的索引模板中,我想像这样访问反向连接:
{% for clientType in data.pieces %}
<h2>{{ clientType.title }}</h2>
<ul>
{% for client in clientType._clients %}
<li>{{ client.title }}</li>
{% endfor %}
</ul>
{% endfor %}
documentation on joins 描述了如何设置反向联接,但 joinByOneReverse
和 joinByArrayReverse
似乎都不是实现此目的的正确工具。
我是否需要以不同的方式设置我的架构才能使其正常工作?我更愿意保留编辑体验,以便编辑将客户类型与单个客户相关联。
如您所知,我是 P'unk Avenue 的 Apostrophe 的首席开发人员。
joinByOneReverse
确实是正确的工具:
{
name: '_clients',
label: 'Clients',
type: 'joinByOneReverse',
idField: 'clientTypeId',
withType: 'client'
}
之所以称为 "joinByOneReverse",是因为这是您 "reversing" 的连接类型 (joinByOne
),以便从另一端看到它。
属性 是一个数组 属性,因为没有什么可以阻止多个 client
使用其 clientTypeId
字段来引用相同的 client-type
。事实上,这正是您所希望的。
我有一个模式定义了 client
到 clientType
的关系,如下所示:
{
name: '_clientType',
label: 'Client Type',
type: 'joinByOne',
withType: 'client-type',
idField: 'clientTypeId',
filters: {
projection: {
slug: 1,
title: 1
}
}
}
在我的 clientType
模块(apostrophe-pieces-pages
的扩展)的索引模板中,我想像这样访问反向连接:
{% for clientType in data.pieces %}
<h2>{{ clientType.title }}</h2>
<ul>
{% for client in clientType._clients %}
<li>{{ client.title }}</li>
{% endfor %}
</ul>
{% endfor %}
documentation on joins 描述了如何设置反向联接,但 joinByOneReverse
和 joinByArrayReverse
似乎都不是实现此目的的正确工具。
我是否需要以不同的方式设置我的架构才能使其正常工作?我更愿意保留编辑体验,以便编辑将客户类型与单个客户相关联。
如您所知,我是 P'unk Avenue 的 Apostrophe 的首席开发人员。
joinByOneReverse
确实是正确的工具:
{
name: '_clients',
label: 'Clients',
type: 'joinByOneReverse',
idField: 'clientTypeId',
withType: 'client'
}
之所以称为 "joinByOneReverse",是因为这是您 "reversing" 的连接类型 (joinByOne
),以便从另一端看到它。
属性 是一个数组 属性,因为没有什么可以阻止多个 client
使用其 clientTypeId
字段来引用相同的 client-type
。事实上,这正是您所希望的。