首页 > 解决方案 > 如何使用 Symfony Api Pltaform 发送 json 和文件

问题描述

我正在使用 Symfony 4 和 Api 平台,并且我有实体书和文档。添加书籍和添加文件工作正常,但分开。现在我想将它们添加在一起并将 Book To Document 链接起来。

实体书:

* @ORM\Entity
*/
class Book
{

//***

/**
 * @var Document|null
 *
 * @ORM\ManyToOne(targetEntity="App\Entity\Document", cascade={"all"})
 * @ORM\JoinColumn(nullable=true)
 * @ApiProperty(iri="http://schema.org/image")
 * @Groups({"book:read", "document_read", "document_create", "book:write"})
 */
public $document;

//***
}

当我使用邮递员添加带有表单数据的文档时,它可以工作并且文件已保存,但是当我添加带有表单数据的书时,我收到此错误:

不支持内容类型“multipart/form-data;boundary=-------------------------431943027292248567654772”。支持的 MIME 类型为 "application/ld+json"、"application/json"、"text/html"。",

邮递员身体

图像

标签: symfonypostmanapi-platform.com

解决方案


如上所述,您必须在 api_platform.yml 文件(Config->packages->api_platform.yml)中添加“mime_types”部分。

像这样:

api_platform:

mapping:
    paths: ['%kernel.project_dir%/src/Entity']
patch_formats:
    mime_types: ['multipart/form-data']
    json: ['application/merge-patch+json']

推荐阅读