首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在StrapiJS中获取创建者和更新者字段?

在Strapi中,获取内容类型的创建者和更新者信息可以通过以下几种方式实现。Strapi提供了内置的用户权限管理系统,可以记录内容的创建者和更新者信息。

1. 使用 Strapi 内置的 created_byupdated_by 字段

Strapi自动为每个内容类型添加 created_byupdated_by 字段,这些字段记录了内容的创建者和更新者信息。你可以在API请求中包含这些字段来获取相关信息。

示例:获取内容类型的创建者和更新者信息

假设你有一个名为 article 的内容类型,你可以通过以下方式获取文章的创建者和更新者信息:

代码语言:javascript
复制
// 在你的控制器或服务中
const article = await strapi.services.article.findOne({ id: articleId }, ['created_by', 'updated_by']);

在这个示例中,我们使用 findOne 方法来获取特定文章,并通过第二个参数指定要包含的关联字段 created_byupdated_by

2. 在API响应中包含创建者和更新者信息

你可以通过修改内容类型的控制器或服务来在API响应中包含 created_byupdated_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); }, };

3. 自定义GraphQL查询

如果你使用的是GraphQL,你可以自定义GraphQL查询来包含 created_byupdated_by 字段。

示例:自定义GraphQL查询

  • 编辑GraphQL schema: 在 ./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', }, }, }, };

  • 使用GraphQL查询获取数据

query { articles { id title content created_by { id username email } updated_by { id username email } } }

通过这种方式,你可以在GraphQL查询中包含 created_byupdated_by 字段,并获取相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券