Directus:如何正确创建与同一集合的多对多关系

Directus : How to create a many-to-many relationship to the same collection properly

我创建了一个主题 集合。 我想为同一集合创建 多对多 关系。 列名是related_topics.

我按照文档进行操作,因此我为该列创建了一个 多对多 关系和一个将关联 [= 的联结 table 51=]topic_related.topic_id1 从另一边 topic.idtopic_related.topic_id2.

对于主题 (A) 我可以 select 主题 (B)。

但是,如果我打开 (B),我在那里看不到任何相关主题。

我希望看到 (A)。

我是不是做错了什么?

感谢您的宝贵时间!

编辑 1:

相关主题

在主题 A 的页面上,我将 select B 作为相关文章:

我希望在主题 B 的页面上也能找到这种关系,但我发现了这个:

据我了解,描述中似乎存在差异,但是,这是您要执行的操作吗:

topics.related_topics => junction collection => topics.id

如果是这样,您已经在 related_topics 字段上创建了从 parent 到一个或多个 children 的单向关系,在您问的是哪些主题与此项目相关。

如果您想查看 parent 与 child 项目相关的内容,请使用相同的连接集合创建另一个 M2M 接口,但翻转以前 M2M 界面设置中的字段,现在您可以自动以另一种方式查看它。

然后你应该做的是:

topics.id => junction collection => topics.related_topics

M2M 的逻辑是单向的:parent 很多 children 因为它扩展了 O2M:https://docs.directus.io/guides/interfaces.html#core-interfaces

但是,如果您想通过以下方式实现双向,您可以扩展 M2M 接口,建议对 Vue.js 有中等理解:https://docs.directus.io/extensions/interfaces.html

您需要在 https://github.com/directus/app/tree/master/src/interfaces/many-to-many

中更新 input.vue