微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oro 中的 RestAPI 自定义模型异步操作

如何解决Oro 中的 RestAPI 自定义模型异步操作

我创建了模型 AcmeBundle\Api\Model\AcmeLineItem,其中包含几个字段,并在 config/oro/api.yml 文件中对其进行了配置。

api:
  entity_aliases:
    AcmeBundle\Api\Model\AcmeLineItem:
      alias:        acme
      plural_alias: acme
  entities:
    AcmeBundle\Api\Model\AcmeLineItem:
      fields:
        name:
          data_type: string
          form_options:
            constraints:
              - NotBlank: ~
      actions:
        create: true
        update_list: true
        

处理器中可用于 create 操作的字段,并且可以由它以所需的方式进行处理。

- { name: oro.api.processor,action: create,group: save_data,class: AcmeBundle\Api\Model\AcmeLineItem }

但该方法需要元键中的主体结构。

{
  "Meta": {
    "name": "acme"
  }
}

基于此,很难找出如何处理 update_list 操作。

解决方法

需要指定实体标识符 (id)。 为此,请在 api.yml 文件中为 identifier_field_names 设置 AcmeBundle\Api\Model\AcmeLineItem 选项。

identifier_field_names string[] - 实体的标识符字段的名称。使用此选项可以覆盖在配置文件中设置的名称(对于不基于 ORM 实体的 API 资源)或从实体元数据中检索(对于 ORM 实体)。当您不想在 API 中使用主键作为实体标识符时,此选项很有用。

完整的 API 配置参考:https://doc.oroinc.com/backend/api/configuration/#web-api-entities-config

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。