首页 > 解决方案 > 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 });},

标签: javascriptstrapi

解决方案


假设您正在使用PostGreSQLwith 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
}

推荐阅读