[英]Bidirectional reference does not work Symfony2
我正在使用Sonata Admin Bundle创建后端,但是“一对多”存在问题:我有“问题”文档,其中引用了一个“ QuizzPart”:
/**
*@MongoDB\ReferenceOne(targetDocument="QuizzPart", inversedBy="questions")
*/
protected $quizzPart ;
而且“ QuizzPart”文档引用了许多问题:
/**
* @var ArrayCollection
* @MongoDB\ReferenceMany(targetDocument="Question", mappedBy="quizzpart", cascade="all")
*/
protected $questions = array();
这就是我如何将QuizzPart添加到带有Sonata admin的Question中:
$formMapper->add('quizzPart', 'sonata_type_model', array('by_reference' => true,
'required' => false)) ;
但是,当我添加问题并设置其QuizzPart时,在Quizzpart中没有该问题的引用:这是QuizzPart的setter方法:
public function setQuizzPart(\ATS\QuizzBundle\Document\QuizzPart $quizzPart)
{
$this->quizzPart = $quizzPart;
$quizzPart->addQuestion($this);
return $this;
}
这个问题没有添加到QuizzPart对象中,任何人都可以帮忙吗?
您需要更改将测验部分添加到问题实体的方式。 它看起来应该像这样:
public function addQuizzPart(QuizzPart $quizzPart)
{
$this->quizzParts->add($quizzPart);
$quizzPart->setQuestion($this); //This way the entities are "connected"
return $this;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.