PocketBase获取Gallery时展开Sections关联关系失败求助
解决PocketBase反向关联展开为空的问题
你的问题出在反向关联需要先在PocketBase后台配置,不能直接用集合名来expand。
关系逻辑说明:
sections通过gallery_id字段正向关联galleries,所以从sections展开galleries可以直接用关联字段名;- 但从
galleries展开关联的sections属于反向关联,必须先在后台给galleries集合配置对应的反向关系,才能通过expand获取数据。
后台配置步骤:
- 登录PocketBase后台,进入
galleries集合的编辑页面; - 切换到「Relations」标签页,点击「Add relation」;
- 配置反向关系:
- Collection:选择
sections; - Field:选择
sections集合里的gallery_id字段(即关联galleries的字段); - Name:给这个反向关系命名,比如
sections(这个名称就是后续expand要用到的标识);
- Collection:选择
- 保存配置。
修正后的代码:
注意: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
相关产品推荐
相关产品推荐

