Как сделать собственный JSON-декодер для класса Symfony Entity? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть класс Category Entity, который имеет собственную ссылку на родителя.Например:

id
parent
title
description
...

У меня есть класс Normalizer, который кодирует объект в JSON следующим образом:

{
    "id": 10,
    "parent": 1,
    "title": "Sports",
    "description": "Sports news." 
}

Теперь я хочу сгенерировать класс Entity при выполнении запроса POST в форме, подобной нормализатору.,

Могу ли я сгенерировать класс сущностей из такого формата и как?Я хочу сделать запрос POST в формате JSON для создания сущности в службе REST.

1 Ответ

0 голосов
/ 25 октября 2018

Советую воспользоваться формой Symfony.Это лучше во многих отношениях, чем денормализатор IHMO

$data = json_decode($request->getContent());
$entity = new Entity();
$form = $this->createForm(EntityType::class, $entity, [
    'method' => Request::METHOD_POST
]);
$form = $form->submit($data);

if (!$form->isValid()) {
    return new JsonResponse('Some error in the form', 400);
}

$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();

return $this->json($entity, Response::HTTP_OK);
...