Symfony 序列化程序不适用于 --no-dev

Symfony serializer doesn't work with --no-dev

我正在使用 symfony 序列化程序。但是,如果我安装带有 --no-dev 标志的作曲家包,它会反序列化应该是数组数组中的对象数组的数据。

这是连载:

$result = $this->get('serializer')->deserialize(
    $request->getContent(),
    InputDto::class,
    'json'
);

对于反序列化,我在 DTO 中使用注释。

这是 "field" 在 DTO 中查找对象数组的方式:

/**
 * @var OrderItemDto[]|Collection
 */
private $items = [];

基于代码:

https://github.com/symfony/serializer/blob/master/Encoder/JsonDecode.php#L84

如果您将选项 json_decode_associative 传递为 false

$result = $this->get('serializer')->deserialize(
    $request->getContent(),
    InputDto::class,
    'json',
    ['json_decode_associative' => false]
);

不应尝试将其转换为数组。

http://php.net/manual/en/function.json-decode.php

要使对象子关卡工作,您需要添加到 app/config/config.ymlframework 部分下一行:

property_info:
    enabled: true