微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Directus:如何正确地对同一集合创建多对多关系

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

我遵循了文档,因此为该列和一个联结表创建了一个多对多关系,该联结表将 topic.id topic_related关联起来。 topic_id1 ,从另一端 topic.id 更改为 topic_related.topic_id2

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

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

我希望看到(A)。

我做错什么了吗?

感谢您的时间!

EDIT1:

相关主题

enter image description here

主题A的页面上,我将选择B作为相关文章

enter image description here

我希望也可以在主题B的页面上找到此关系,但是我发现了这一点:

enter image description here

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。