【问题标题】:Combining Collections in Directus在 Directus 中组合集合
【发布时间】:2020-09-18 05:12:36
【问题描述】:

我已经设置了一个包含 3 个集合的 Directus CMS 项目,如下所示:

  1. 演员
  2. 电影
  3. 电视剧

我想将电影和电视节目与多选有序列表中的演员相关联。我已经尝试查看一对多关系和其他一些关系,但似乎无法弄清楚如何构建它。理想情况下,我希望它看起来大致如下:

  • 编辑演员记录 John Smith
  • 包含所有电视节目和电影的多选数组(或可能的其他界面)
  • 所有电视节目和电影都显示在多选字段“标题”中,这两个集合都有
  • 用户可以选中单个电视节目或电影的复选框,并根据需要在多选中对其进行排序。

我需要一个中间路口集合吗?我在这里遗漏了什么明显的东西吗?

从最初的印象来看,Directus 看起来是一个很棒的 CMS!

【问题讨论】:

    标签: join collections relationship one-to-many directus


    【解决方案1】:

    您在正确的轨道上,但您正在寻找的关系类型是“多对多”(或 M2M)。这是因为一部电影可以有很多演员,而演员可以出现在很多部电影中。

    您可以在此处查看此关系设置的 Directus 文档:

    https://docs.directus.io/guides/relationships.html#many-to-many

    您将添加两个联结表,例如 actor_moviesactor_tv_shows,每个都有这样的架构:

    • id — 关系的主键
    • actor_id — 保存 actor id 的外键
    • movie_id — 保存电影 ID 的外键

    因此,这些表中的每条记录都将演员链接到电影或电视节目。

    【讨论】:

    • 嗨,Ben -- 非常感谢您的快速回复。这两个连接表听起来很棒,但我认为目前没有办法在同一个界面中对电影和电视节目进行单一的多选?我正在考虑将这些集合拆分为具有不同字段的单独集合(例如动作电影、戏剧电影等),并希望尽可能避免为每个集合单独选择多选。
    • 没问题!这可以通过以下两种方式之一来实现:您可以将电影和电视节目组合到一个集合中……或者您可以等待 v9,它将支持“多对任意”关系(用于连接到不同集合中的项目)。 V9 可能需要 4-6 周。
    • 只是为了再次确保我没有忽略任何东西,没有简单的 GUI 方法可以将两个集合组合成第三个集合,对吗?我必须用一些代码和 API 来做到这一点?或者也许我可以在 TV 和 Movies 集合上使用一个挂钩,它基本上只是将我想要的记录部分复制到我的多选的第三个集合中?
    • 除了最后一个问题,从额外的探索中是否有任何简单的方法可以从多选中的选定选项中填充下拉列表?我看到其他一些帖子提到使用点符号来这样做,但是当下拉列表似乎只有手动输入 KVP 的选项时,我看不到任何简单的方法可以使这项工作发挥作用。再次感谢大家的帮助!
    • 目前无法将集合合并为一个(例如:视图),但这是我们计划在 v9.x 中实现的功能。所以现在它必须是自定义接口或不同的模式模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2011-04-13
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2016-01-29
    相关资源
    最近更新 更多