我设法使用@ApiFilter(SearchFilter::class)
注解,通过API Platform获得了一个经过过滤的Note
实体集合。
现在我想转换json响应,它是一个hydra集合
示例:
{
"@context": "/api/contexts/Note",
"@id": "/api/notes",
"@type": "hydra:Collection",
"hydra:member": []
}
到包含一个文件的归档文件并返回其元数据。
示例:
{
"name": "my_archive.zip",
"size": 12000,
"nb_of_notes": 15
}
我想保留SearchFilter的优点。规范化是好方法吗?
如何在normalize()
方法中访问Notes的集合/数组?
2条答案
按热度按时间polhcujo1#
根据文档symfony custom_normalizer,您可以为Note实体创建一个自定义规范化器(例如NoteNormalizer)。在supportsNormalization方法中,您必须通过提供Note实体类来明确规范器只会影响Note实体。因此,在normalize方法中,您将获得Note的ArrayCollection中的每一项。如果您想确定,你可以在这个normalize方法中对$data变量(dd($data))进行转储,这样你就得到了ArrayCollection的第一个元素。这就是我试图理解它的方法。
或者,如果需要,可以使用以下命令自动生成:
并给予名称:注意规范化程序
lnvxswe22#
只需创建一个“集合
Normalizer
“:注意:对于vanilla symfony项目也是如此。