strapi - Strapi 不包括响应中的关系数据
问题描述
我在多个表之间创建了一个关系,例如
- 垂直有很多用户
- 科技有很多用户
- 团队拥有并属于许多用户
因此,当从垂直休息 API 发送请求时,它没有技术和团队响应。所有这些数据都包含在用户表的响应中,但我希望这些数据也都包含在单个表中。
所以我错过了什么?如果没有,那么我该如何添加这些作为回应?
解决方案
好吧,让我解释一下您创建的关系:
您已链接:
Vertical => Users
Tech => Users
Team => Users
从上面可以清楚地看出,您已将所有关系链接到用户集合。因此strapi
将向其他关系集合添加一个id
inusers
集合。
因此,当您执行find
以下操作时,书架默认情况下会尝试根据集合中id
存储的内容获取和填充所有关系。users
// this will fetch the related data also
await strapi.services.users.findOne({id: 1});
现在对如何通过查询其他集合来获取链接数据产生疑问,您将需要覆盖控制器中的 find 方法并编写手动查询来strapi.query('vertical').model
进行连接并自己获取链接数据。
const result = await strapi
.query('vertical')
.model.query(qb => {
qb.join('users', 'users.vertical_id', '=', 'vertical.id');
qb.join('tech', 'tech.id', '=', 'users.tech_id');
qb.join('teams_user_relation', 'teams_user_relation.user_id', '=', 'users.id');
qb.join('teams', 'teams.id', '=', 'teams_user_relation.team_id');
})
.fetch();
const fields = result.toJSON();
请参阅strapi中的自定义查询以获取更多信息。
推荐阅读
- python - Kivy:弹出窗口只能有一个小部件作为内容(当我导入两个不同的弹出模块时)
- c# - 将 .HasDefaultValueSql("NEWID()") 与 SQLite 一起使用
- c# - 发布包含 jpg 和 json 的多部分请求会导致内部服务器错误和 IIS 上的 win32 状态 64
- python - 用 Selenium 抓取 Amazon - XPath 问题
- assembly - 解释师算子组装
- python - 无法从输入字段中获取整数值
- html - 当特定字符串存在部分工作时突出显示 HTML 正文?
- python - 将 Entry Tkinter 框保存到文本文件
- javascript - 我的应用不想重新渲染,但是上下文中的列表确实
- reactjs - 即使验证模式报告错误,Formik 的“isValid”也报告为真