You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Directus.io中一次请求获取递归导航完整树形结构?

在Directus中获取递归导航的完整树形结构

Directus支持通过嵌套字段语法一次性获取多层递归的关联数据,针对你的navigation_items递归结构,只需要在请求的fields参数里逐层指定子层级的字段即可覆盖三级导航:

修改后的请求代码

如果需要指定具体字段:

$readItem('navigations', id, {
  fields: [
    'id',
    'title',
    'navigation_items.id',
    'navigation_items.title',
    'navigation_items.children.id',
    'navigation_items.children.title',
    'navigation_items.children.children.id',
    'navigation_items.children.children.title'
  ]
})

如果需要获取所有字段,可使用通配符简化写法:

$readItem('navigations', id, {
  fields: [
    'id',
    'title',
    'navigation_items.*',
    'navigation_items.children.*',
    'navigation_items.children.children.*'
  ]
})

返回结果示例

执行后会返回包含完整三级树形结构的数据:

{
  "id": "main",
  "title": "Main",
  "navigation_items": [
    {
      "id": 3,
      "title": "一级导航项",
      "children": [
        {
          "id": 4,
          "title": "二级导航项",
          "children": [
            {
              "id": 5,
              "title": "三级导航项",
              "children": []
            }
          ]
        }
      ]
    }
  ]
}

注意事项

  • 如果后续需要支持更多层级,只需继续嵌套navigation_items.children.children.children.*这类字段即可,层级数量没有硬性限制,但需根据实际业务场景控制(避免请求数据量过大)。
  • Directus目前不支持原生的无限递归查询(出于性能保护),所以一次请求必须显式指定需要覆盖的最深层级。

内容的提问来源于stack exchange,提问作者Martin at Mennt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 00:59:50