在Strapi中,获取内容类型的创建者和更新者信息可以通过以下几种方式实现。Strapi提供了内置的用户权限管理系统,可以记录内容的创建者和更新者信息。
created_by
和 updated_by
字段Strapi自动为每个内容类型添加 created_by
和 updated_by
字段,这些字段记录了内容的创建者和更新者信息。你可以在API请求中包含这些字段来获取相关信息。
假设你有一个名为 article
的内容类型,你可以通过以下方式获取文章的创建者和更新者信息:
// 在你的控制器或服务中
const article = await strapi.services.article.findOne({ id: articleId }, ['created_by', 'updated_by']);
在这个示例中,我们使用 findOne
方法来获取特定文章,并通过第二个参数指定要包含的关联字段 created_by
和 updated_by
。
你可以通过修改内容类型的控制器或服务来在API响应中包含 created_by
和 updated_by
字段。
./api/article/controllers/article.js
中创建或编辑控制器文件:'use strict'; module.exports = { async find(ctx) { const articles = await strapi.services.article.find(ctx.query, ['created_by', 'updated_by']); return articles; }, async findOne(ctx) { const { id } = ctx.params; const article = await strapi.services.article.findOne({ id }, ['created_by', 'updated_by']); return article; }, };
./api/article/services/article.js
中创建或编辑服务文件:'use strict'; module.exports = { async find(params, populate) { return strapi.query('article').find(params, populate); }, async findOne(params, populate) { return strapi.query('article').findOne(params, populate); }, };
如果你使用的是GraphQL,你可以自定义GraphQL查询来包含 created_by
和 updated_by
字段。
./api/article/config/schema.graphql.js
中编辑GraphQL schema:module.exports = { definition: ` type Article { id: ID! title: String! content: String! created_by: UsersPermissionsUser updated_by: UsersPermissionsUser } `, query: ` article(id: ID!): Article articles: [Article] `, resolver: { Query: { article: { resolver: 'application::article.article.findOne', }, articles: { resolver: 'application::article.article.find', }, }, }, };
query { articles { id title content created_by { id username email } updated_by { id username email } } }
通过这种方式,你可以在GraphQL查询中包含 created_by
和 updated_by
字段,并获取相关信息。
领取专属 10元无门槛券
手把手带您无忧上云