组件和动态区域

使用 Strapi 的实体服务创建和更新组件和动态区域。

组件和动态区域

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

创建

使用实体服务 API 创建条目时可以创建 组件

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

使用实体服务 API 创建条目时,可以创建 动态区域(即组件列表):

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

Update

使用实体服务 API 更新条目时可以更新 组件。如果指定了组件 id,则更新该组件,否则删除旧组件并创建新组件:

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

使用实体服务 API 更新条目时,可以更新 动态区域(即组件列表)。如果指定了组件 id,则更新该组件,否则删除旧组件并创建新组件:

js
strapi.entityService.update('api::article.article', 1, {
  data: {
    myDynamicZone: [
      {
        // will update
        id: 2,
        __component: 'compo.type',
        foo: 'bar',
      },
      {
        // will add a new & delete old ones
        __component: 'compo.type2',
        foo: 'bar2',
      },
    ],
  },
})