学说2:并非所有实体都持久存在,为什么?

时间:2015-10-03 08:24:14

标签: symfony doctrine-orm doctrine

我试图在循环中持久化反馈实体。问题是,正好有1个实体没有被持久存在(无论我想要保留多少个实体;它总是n-1而不是n)。

要了解以下代码段,您必须知道调查实体可以包含多个反馈实体(1..n关系)。

如果$ feedbackCount = 10,那么只有9个反馈实体会持久存储到数据库中。在这篇文章的最后,你还可以看到相应的学说工作单元。它显示10个反馈实体被添加到调查中(因此循环正常工作),但最后只有9个反馈实体进行了监听。

任何想法的家伙?

这是我的代码:

for ($count = 0; $count < $feedbackCount; $count++) {

            $feedback = new Feedback();
            $feedback->setFeedback("no feedback yet");
            $feedback->setSurvey($survey);
            // Add feedback to survey
            $survey->addFeedback($feedback);
            // Persist Feedback
            $entityManager->persist($survey); // persist($feedback) has same effect
        } // end for

    $uof = $entityManager->getUnitOfWork();
    dump($uof);

这里是转储声明的工作单元: enter image description here

以下是...的yaml实体配置。

反馈

manyToOne:
    survey:
        targetEntity: App\APIBundle\Entity\Survey
        inversedBy: feedbacks
        cascade: ["persist"]
        joinColumn:
            name: surveyId
            referencedColumnName: id

调查:

oneToMany:
    feedbacks:
        targetEntity: App\APIBundle\Entity\Feedback
        cascade: ["persist", "merge"] 
        mappedBy: survey

更新

正如malcom所述,以下屏幕截图显示,在ArrayColletion中,Feedback实体(0)具有与Feedback实体(1)相同的属性。没有区别。 (无关的属性模糊) enter image description here

解决方案:

查看我的上一条评论。

0 个答案:

没有答案