首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何深入浅出?

如何深入浅出?
EN

Stack Overflow用户
提问于 2021-10-31 07:07:42
回答 1查看 1.1K关注 0票数 1

我有来自Strapi cms的以下用户API,我想深入获取地址组件(可重复组件)。

所以,我想要获取的是地址为63 Southlands Road的用户.我尝试了很多方法:

  • 尝试了Strapi内置查询

http://localhost:1337/users?address.info=63%20Southlands%20Road

  • 尝试了自定义查询:

结果=等待strapi .query("user") .model.query((qb) => { qb.where("address.info","63 Southlands“);}) .fetch();

所有这些信息都没有效果,我也没有选择了。这在斯特拉皮有可能..。如果不是,我正在尝试切换到节点服务器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-31 12:15:29

Strapi中,无法直接基于嵌套组件数据查询模型。但是,您可以使用原始查询来查询组件数据并获得所需的结果。表名基于上下文中的模型名称,因为Strapi遵循这个特定的命名约定,并在admin中创建content-types时自动创建表。

Strapi遵循的命名约定

如果您创建一个名为user的模型,并在其中创建两个组件(例如,addresslocation ),那么Strapi将创建4个表,如下所示:

这个表存储用户模型为每个data

  • users_components所拥有的所有组件的映射这个表将存储与record

  • components_users_address链接的所有address组件的数据该表将存储与user模型

链接的所有location组件的数据。

您可以通过pg-adminphp-myadmin打开项目数据库,交叉检查表名。

解决方案

代码语言:javascript
运行
复制
let result = await strapi.connections.default.raw(
"SELECT u.*
 FROM users u
 LEFT JOIN users_components uc
 ON (uc.user_id = u.id AND uc.component_type='components_users_address' AND uc.field='address')
 LEFT JOIN components_users_address cua ON (cua.id = uc.component_id)
 WHERE AND cua.ifno LIKE '63 Southlands Road'");
console.log(result);

MySQL P.S:我只在 PostGreSQL上试过这个

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69784620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档