Directus:如何正确创建与同一集合的多对多关系
Directus : How to create a many-to-many relationship to the same collection properly
我创建了一个主题 集合。
我想为同一集合创建 多对多 关系。
列名是related_topics.
我按照文档进行操作,因此我为该列创建了一个 多对多 关系和一个将关联 [= 的联结 table 51=] 到 topic_related.topic_id1 从另一边 topic.id至 topic_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
我创建了一个主题 集合。 我想为同一集合创建 多对多 关系。 列名是related_topics.
我按照文档进行操作,因此我为该列创建了一个 多对多 关系和一个将关联 [= 的联结 table 51=] 到 topic_related.topic_id1 从另一边 topic.id至 topic_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