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

PocketBase获取Gallery时展开Sections关联关系失败求助

解决PocketBase反向关联展开为空的问题

你的问题出在反向关联需要先在PocketBase后台配置,不能直接用集合名来expand。

关系逻辑说明:

  • sections通过gallery_id字段正向关联galleries,所以从sections展开galleries可以直接用关联字段名;
  • 但从galleries展开关联的sections属于反向关联,必须先在后台给galleries集合配置对应的反向关系,才能通过expand获取数据。

后台配置步骤:

  1. 登录PocketBase后台,进入galleries集合的编辑页面;
  2. 切换到「Relations」标签页,点击「Add relation」;
  3. 配置反向关系:
    • Collection:选择sections;
    • Field:选择sections集合里的gallery_id字段(即关联galleries的字段);
    • Name:给这个反向关系命名,比如sections(这个名称就是后续expand要用到的标识);
  4. 保存配置。

修正后的代码:

注意:getOne是获取单条记录,不需要page和perPage参数(这两个是列表查询专用),直接删除即可:

const pb = new PocketBase("http://127.0.0.1:8090/");
const data = await pb.records.getOne(
  "galleries",
  context.params!.id as string,
  {
    expand: "sections" // 这里填写你刚才配置的反向关系名称
  }
);

此时请求返回的data["@expand"].sections就能拿到该gallery关联的所有sections记录了。

正向关联展开示例(补充):

如果是从sections展开对应的gallery,直接用关联字段名即可,无需额外配置:

// 获取单条section并展开关联的gallery
const sectionData = await pb.records.getOne(
  "sections",
  "section_id_here",
  {
    expand: "gallery_id" // 直接使用sections里的关联字段名
  }
);

内容的提问来源于stack exchange,提问作者mkhatib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:01:45