Strapi v4-正在查询用户权限插件模型:错误:找不到模型角色



我正试图将我的应用程序从Strapi v3升级到v4,查询插件的模型似乎发生了重大变化。

这行代码(适用于v3(:

const publicRole = await strapi
.query("role", "users-permissions")
.findOne({ type: "public" });

产生以下错误:;错误:找不到模型角色";

这是完整的代码:

async function setPublicPermissions(strapi, newPermissions) {
// Find the ID of the public role
const publicRole = await strapi
.query("role", "users-permissions")
.findOne({ type: "public" }); <---- produces Error: Model role not found
// List all available permissions
const publicPermissions = await strapi
.query("permission", "users-permissions")
.find({ type: "application", role: publicRole.id });
// Update permission to match new config
const controllersToUpdate = Object.keys(newPermissions);
console.log({ controllersToUpdate });
const updatePromises = publicPermissions
.filter((permission) => {
// Only update permissions included in newConfig
if (!controllersToUpdate.includes(permission.controller)) {
return false;
}
if (!newPermissions[permission.controller].includes(permission.action)) {
return false;
}
return true;
})
.map((permission) => {
// Enable the selected permissions
return strapi
.query("permission", "users-permissions")
.update({ id: permission.id }, { enabled: true });
});
await Promise.all(updatePromises);
}

有没有一种新的方法可以在版本4中查询插件模型来实现这一点?

我找到了答案。在Strapi v4的插件中查询模型如下:
const publicRole = await strapi
.query("plugin::users-permissions.role")
.findOne({
where: {
type: "public",
},
});

在尝试了很多之后,我使用了在/src/api/user-input/controllers/user-input.js文件作为createCoreController()函数的自变量

module.exports = createCoreController('api::user-input.user-input');

它起作用了!

最新更新