我在我的项目中使用了教义MongoDb。我有两个文件:问题和QuizzPart。
QuizzPart引用了很多问题,为此我做了以下声明:
/**
* @var ArrayCollection
* @MongoDB\ReferenceMany(targetDocument="Question", cascade={"all"})
*/
protected $questions = array();
该问题引用了一个QuizzPart。
/**
*@MongoDB\ReferenceOne(targetDocument="QuizzPart", inversedBy="questions")
*/
protected $quizzPart ;
但是当我创建(或编辑)一个测验部分并尝试在其中添加一些问题时,在我的crud(Sonata admin Bundle)中。数据库中的问题文档中没有引用QuizzPart(但是quizzPart引用了很多问题)。我不知道这个bug的来源。
答案 0 :(得分:0)
经过数小时的研究后我找到了解决方案,实际上问题出在sonata管理包(quizzPartAdmin类)而不是模型的声明中: 它是关于设置标志' by_reference'为假:
$formMapper
->add('questions', 'sonata_type_collection', array('label' => 'add a question', 'by_reference' => false)
, array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'id',
))
;