使用实体服务 API 创建组件与动态区域

页面摘要: 使用实体服务 API,可在创建或更新条目时创建和更新组件与动态区域。组件是单一对象,而动态区域则是带有 __component 类型标识的组件列表。

WARNING

Entity Service API 在 Strapi v5 中已弃用。请考虑改用 Document Service API。

实体服务 是处理 组件 与 动态区域 逻辑的层级。借助实体服务 API,可在创建或更新条目时创建和更新组件与动态区域。

创建(Creation)

可通过实体服务 API 在创建条目时创建 组件:

strapi.entityService.create('api::article.article', {
  data: {
    myComponent: {
      foo: 'bar',
    },
  },
});

可通过实体服务 API 在创建条目时创建 动态区域(即组件列表):

strapi.entityService.create('api::article.article', {
  data: {
    myDynamicZone: [
      {
        __component: 'compo.type',
        foo: 'bar',
      },
      {
        __component: 'compo.type2',
        foo: 'bar',
      },
    ],
  },
});

更新(Update)

可通过实体服务 API 在更新条目时更新 组件。如果指定了组件的 id,则更新该组件;否则将删除旧组件并创建一个新组件:

strapi.entityService.update('api::article.article', 1, {
  data: {
    myComponent: {
      id: 1, // 将更新 id 为 1 的组件(若未指定,则会删除该组件并创建一个新组件)
      foo: 'bar',
    },
  },
});

可通过实体服务 API 在更新条目时更新 动态区域(即组件列表)。如果指定了组件的 id,则更新该组件;否则将删除旧组件并创建一个新组件:

strapi.entityService.update('api::article.article', 1, {
  data: {
    myDynamicZone: [
      {
        // 将更新
        id: 2,
        __component: 'compo.type',
        foo: 'bar',
      },
      {
        // 将新增一个并删除旧的
        __component: 'compo.type2',
        foo: 'bar2',
      },
    ],
  },
});