繁体   English   中英

双向引用不起作用Symfony2

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM