2015-06-04 2 views
2

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

Результат Entity:

@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"}) 

Ответ Entity:

@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'); 

и десериализации процесс assings этого значения ...

Ev erything is fine, все json-переменные задают правильные свойства объекта.

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

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

Но DB/доктрина не отображает отношения ...

ответ

3

я решил такую ​​же проблему с функцией слияния():

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

Я добавил каскад = { «persist», «remove», «merge»} работает ... – Tigin

Смежные вопросы