问题描述
我创建了模型 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