繁体   English   中英

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

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

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

我按照文档进行操作,因此我为此列创建了一个多对多关系和一个联结表,该联结表将topic.idtopic_related.topic_id1以及从另一端topic.idtopic_related.topic_id2 相关联

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

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

我希望看到 (A)。

难道我做错了什么?

谢谢你的时间 !

编辑1:

相关话题在此处输入图像描述

在主题 AI 将 select B 的页面上作为相关文章: 在此处输入图像描述

我希望在主题 B 的页面上也能找到这种关系,但我发现了这个: 在此处输入图像描述

据我所知,描述中似乎存在差异,但是,这是您要尝试做的事情吗:

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

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

如果您想查看子项与哪些父项相关,请使用相同的连接集合创建另一个M2M 接口,但翻转先前 M2M 接口设置中的字段,现在您可以自动以另一种方式查看它。

然后你应该这样做:

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

M2M 的逻辑是单向的:在扩展 O2M 时为许多子级的父级:https://docs.directus.io/guides/interfaces.html#core-interfaces

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

您需要在以下位置更新 input.vue: https://github.com/directus/app/tree/master/src/interfaces/many-to-many

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM