Directus - 如何在 api 中显示 Many2Many 关系

May*_*ker 1 directus

我正在尝试在 Directus 中创建一个博客。我创建了博客收藏和类别收藏。我正在使用具有多对多关系的连接表将类别连接到博客。我可以创建一个新的博客文章并从类别集合中选择类别,我也可以添加一个新类别。但是当我调用 api 时,它没有在我的 rest api 调用中显示类别字段。我可以调用类别端点并查看rest api中所有类别的列表,但在博客集合端点中,我无法查看相关类别名称。

我想在我的 rest api 中查看每个博客文章的所有选定类别名称。我想在我的 rest api 中调用类别集合时查看所有博客文章,将类别名称放在项目名称/项目/类别/外星人/中,这样我就可以看到外星人类别的所有博客文章。

目前我通过在 json 中调用我的博客集合来获得这个 -

{
  "data": [
    {
      "id": 1,
      "status": "published",
      "owner": 1,
      "created_on": "2020-03-16 21:15:25",
      "blog_title": "first blog post title",
      "blog_content": "<p>sdlkjfhsdkfol8ysdmfhj sd,fh klsdhf msoiudf oihsdyfghm soreht4,7shetc,oiuh,scenclkr</p>\n<p><strong>dsfgdsfgds</strong></p>"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何在rest api上获取类别名称?

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

Dan*_*iel 6

您应该在这两个表之间创建一个关系表,这样您应该能够像这样过滤信息?fields=id,blog_title,blog_content,category.category_id.category_name,category.category_id.status

如果这令人困惑,让我尝试简化关系部分:

category.category_id.category_name
<field_name_on_current_item>.<identifier_on_junction_table_related_to_category_id>.<relation_field_name_to_display>
Run Code Online (Sandbox Code Playgroud)

我意识到这是一篇旧帖子,但它可能会对寻找答案的人有所帮助。


RAN*_*GER 5

您是否尝试使用该fields参数?这用于获取深度嵌套的关系数据:

?fields=*.*.*

在此示例中,星号是该关系深度处的_all_ 字段的通配符...因此这将获取三个级别的深度。

https://docs.directus.io/api/query/fields.html