Strapi 如何使用某些列修改“fetchAll”?

Strapi 如何使用某些列修改“fetchAll”?,strapi,Strapi,我想限制返回strapi.services.myType.fetchAll ctx.query的结果;通过选择某些列,选择第1列、第2列。。。不选择* 如何以及在何处编辑ctx.query 非常感谢 另外,我也不知道在这种情况下如何使用GraphQL作为后端。有人能给我一个提示吗 您可以通过几种方式来实现,其中一种方式是在模型的生命周期函数中。无论您是否使用GraphQL,它都应该有效 afterFetchAll: async (model, response, options) => {

我想限制返回strapi.services.myType.fetchAll ctx.query的结果;通过选择某些列,选择第1列、第2列。。。不选择*

如何以及在何处编辑ctx.query

非常感谢


另外,我也不知道在这种情况下如何使用GraphQL作为后端。有人能给我一个提示吗

您可以通过几种方式来实现,其中一种方式是在模型的生命周期函数中。无论您是否使用GraphQL,它都应该有效

afterFetchAll: async (model, response, options) => {
    model.forEach(m => {
        m.unset('column1')
        m.unset('column2')
    })
}
这样,您就可以从获取的模型数组中删除任何列/字段

这个文件应该位于:api/MyType/models/MyType.js


有关更多信息,请参阅。

这可能是我问题的答案吗?我还没有测试过。如果我使用GraphQL并具有以下GraphQL查询,那么如何将此查询放置在后端中,以及将其放置在哪里?{posts{id,title}}GraphQL是前端应用程序吗?我在表中有ContentType列,用户应该看不到这些列。如果我在前端使用GraphQL,GraphQL查询可以被操纵吗?我是说,任何用户都能破解这些专栏吗?如果我只想显示{posts{col1,col2}},但用户将其更改为{posts{col3,col4,colany…}这可能吗?是的,在使用GraphQL时,任何API用户都可以选择任何现有列,只要他/她知道列名并有权访问API。从技术上讲,GraphQL允许您限制对某些字段/列的访问,但我猜这超出了Strapi的范围。非常感谢您指出,我将在本周对其进行测试,并在之后进行报告。我不认为这是一种有效的方法,它将首先获取所有记录,然后通过循环删除列!!!