javascript - Strapi:查询有和没有用户 ID 的房间
问题描述
我想返回一些默认数据以及经过身份验证的数据。所以基本上我有一个叫做房间的表,有两列 user 和 owner_id 与另一个表相关。我有一些没有与之关联的 owner_id 的数据。这些是我的默认数据,我希望始终发送它们,然后在我的应用程序中,我可以创建自定义房间,该房间将具有与之关联的 owner_id,对于那些我只想返回经过身份验证的用户数据和默认数据的用户。但我的问题是我只能将经过身份验证的数据或所有默认数据发送到所有经过身份验证的用户数据。提供代码和屏幕截图请帮助。
async find(ctx) {
const owner_id = ctx.state.user.id;
const dname = await strapi.services.rooms.find();
const name = await strapi.services.rooms.find({owner_id})
return sanitizeEntity(name, { model: strapi.models.rooms });},
解决方案
假设您正在使用PostGreSQL
with strapi
,您可以通过 usingstrapi.query
而不是strapi.services
async find(ctx) {
const resp = await strapi
.query('rooms')
.model.query(function (qb) {
if (ctx.state.user) qb.where('owner_id', ctx.state.user.id);
qb.orWhere('owner_id', null);
})
.fetchAll();
const data = resp.toJSON();
return data
}
推荐阅读
- excel - 更改组合框值时出现运行时错误“380”(在 Excel 中使用用户窗体和 VBA)
- swift - 如何等待 LAContext.evaluatePolicy 生成一个简单的终端应用程序
- web - 由于 https://dc.services.visualstudio.com/v2/track 命中状态 400 错误,网站登录失败
- c# - ASP.NET MVC 中的十进制绑定
- ios - 在 ios 上打开推送通知时反应本机应用程序崩溃
- ios - Textview 高度未更新 [SWIFT]
- javascript - 未捕获的类型错误:setInterval(...).unref 不是函数
- flamelink-cms - 我无法将图像上传到 Flamelink
- c# - 音频文件路径不是动态的
- node.js - 在节点应用程序中自行提交表单