【问题标题】:strapi v4 missing Create is owner policystrapi v4 缺少 Create is owner 策略
【发布时间】:2023-01-17 22:11:52
【问题描述】:

请帮我。 我无法返回每个登录用户创建的数据。 我哪里错了?

const { createCoreController } = require("@strapi/strapi").factories;

module.exports = createCoreController(
  "api::pessoalfinanca.pessoalfinanca",
  ({ strapi }) => ({
    async create(ctx) {
      let entity;
      ctx.request.body.data.colaborador = ctx.state.user;
      entity = await super.create(ctx);
      return entity;
    },
    async find(ctx) {
      const { data, meta } = await super.find(ctx);
      return { data, meta };
    },
  })
);

【问题讨论】:

  • 你的创建方法有效吗?它是否添加了 colaborador 字段?如果是这样,那么检查请求(在你的 find 方法中的 ctx )是否也有 colaborador 标志?

标签: strapi


【解决方案1】:

问题是你应该传递 id,而不是用户对象

ctx.request.body.data.colaborador = ctx.state.user.id;

还建议检查用户是否已登录,以避免在使用 user.id 时可能出现的异常

完整代码:

 async create(ctx) {
      const { user } = ctx.state;
      if (!user) return ctx.unauthorized();
      let entity;
      ctx.request.body.data.colaborador = user.id;
      entity = await super.create(ctx);
      return entity;
    },

【讨论】:

    猜你喜欢
    • 2020-03-09
    • 2016-11-21
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2018-05-12
    • 2012-05-08
    • 2016-10-25
    相关资源
    最近更新 更多