2015-05-19 2 views
3

Я использую доктрину MongoDb в своем проекте. У меня есть два документа: вопрос и QuizzPart.Упорство от одной до многих Доктрина Mongodb

ссылки QuizzPart много вопросов, для этого я сделал следующее заявление:

/** 
* @var ArrayCollection 
* @MongoDB\ReferenceMany(targetDocument="Question", cascade={"all"}) 
*/ 
protected $questions = array(); 

и вопрос ссылается на один QuizzPart.

/** 
*@MongoDB\ReferenceOne(targetDocument="QuizzPart", inversedBy="questions") 
*/ 
protected $quizzPart ; 

Но в моем CRUD (Соната администратора Bundle) при создании (или изменить) викторина часть и попытаться добавить в него некоторые вопросы. Ссылка на QuizzPart отсутствует в моем Документе Вопроса в базе данных (Но quizzPart ссылается на многие вопросы). Я не знал происхождение этой ошибки.

ответ

0

После нескольких часов исследований я нашел решение, на самом деле проблема заключалась в комплекте администрирования сонаты (класс quizzPartAdmin), а не в объявлении моделей: - это установить флаг 'by_reference' в false:

 $formMapper 
     ->add('questions', 'sonata_type_collection', array('label' => 'add a question', 'by_reference' => false) 
     , array(
     'edit'  => 'inline', 
     'inline' => 'table', 
     'sortable' => 'id', 
     )) 
     ;