JMSSerializerBundle, десериализация не связывает после упорства

Процесс десериализации Процесс OneToMany-ManyToOne всегда получает наборы данных отношения NULL.

Результирующая сущность:

@ORM\OneToMany(targetEntity="\Acme\DemoBundle\Entity\AnswerContent", mappedBy="answerResult", cascade={"persist", "remove"}, orphanRemoval=true)
@JMS\Type("ArrayCollection<Acme\DemoBundle\Entity\AnswerContent>")
@JMS\Groups({"survey_answer_fetching"})

Объект ответа:

 @ORM\ManyToOne(targetEntity="Acme\DemoBundle\Entity\AnswerResult", inversedBy="answers")
@ORM\JoinColumn(name="answer_result_id", referencedColumnName="id")
@JMS\Type("Acme\DemoBundle\Entity\AnswerResult")

Вот JSON:

{"results":
[{"answers":[
{"choices":[{"fieldId":1}],"value":"","questionId":45},
{"choices":[{"fieldId":1}],"value":"","questionId":67}],
"someId":9
}],
"personId":18}


$serializer = $this->get('jms_serializer');
$data = $serializer->deserialize($json['json'], 'Acme\\DemoBundle\\Entity\\AnswerResult', 'json');

И процесс десериализации это задание значений …

Все хорошо, все переменные json устанавливают правильные свойства объекта.

$em->persist($data);
$em->flush();

значения передаются в БД, но отношения не … Все документы JMSSerializationBundle. Все типы JMS определены …

Но DB / Doctrine не отображает отношения …

2

Решение

Я решил ту же проблему с функцией merge ():

$entity = $em->merge($data);
$em->persist($entity);
$em->flush();
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector