我试图在循环中持久化反馈实体。问题是,正好有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);
以下是...的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)相同的属性。没有区别。 (无关的属性模糊)
解决方案:
查看我的上一条评论。