Вот мой код контроллера для получения запроса POST с телом JSON, который затем я хотел бы десериализовать в свой dto. Звучит просто, но по какой-то причине работает не так, как ожидалось. Одно из свойств - это массив объектов, и при десериализации он десерилизуется в массив массивов
Контроллер:
<?php
namespace App\Controller;
use Symfony\Component\Serializer\SerializerInterface;
use App\Dto\CreateDto;
class EntryController extends AbstractController
{
public function __construct(SerializerInterface $serializer)
{
$this->serializer = $serializer;
}
/**
* @Route("", methods={"POST"})
*
*/
public function createEntry(Request $request)
{
$content = $request->getContent();
$entry = $this->serializer->deserialize($content, CreateDto::class, 'json');
...
}
}
DTO:
<?php
namespace App\Dto;
class CreateDto
{
public $name;
public $email;
public $items; // this is CreateDto[]
}
Я делаю запрос с использованием запроса POST почтальона с типом содержимого тела json
{
"name": "Example",
"email": "example@example",
"items": [
{
"name": "sub",
"email": "somethig@example.com"
}
]
}
Symfony версия 5.0.8