响应中不包含关系数据



我已经创建了多个表之间的关系,如

  • vertical有很多用户
  • 技术有很多用户
  • 团队有很多用户

所以当从垂直rest API发送请求时,它没有技术和团队响应。所有这些数据都包含在响应用户表中,但我希望这些数据也都包含在单独的表中。

所以我在这遗漏了什么?如果没有,那么我如何添加这些响应?

让我来解释一下您创建的关系:

您已链接:

Vertical => Users
Tech     => Users
Team     => Users

从上面可以清楚地看出,您已将所有关系链接到users集合。因此,strapi将把users集合中的id添加到其他关系集合中。

所以当你像下面这样做find时,bookshelf将默认尝试获取&根据users集合中存储的id填充所有关系。

// 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中的自定义查询。

我有点晚了,但我希望这能帮助别人

要返回关系,您必须在URL的末尾添加填充查询参数

下面是一个将关联用户填充到垂直视图的示例,如果您希望返回与垂直视图关联的所有关系,请将user替换为*

http://localhost:1337/api/verticals?populate=user

相关内容

  • 没有找到相关文章

最新更新