我正在尝试加载灯具,并且具有准确的ID'使用,所以代码是:
foreach ($this->categories as $index=>$category) {
$newCategory = new Category();
$metadata = $manager->getClassMetaData(get_class($newCategory));
$metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());
$newCategory->setId($index == 6 ? self::SOME_ID : ($index == 7 ? self::SOME_OTHER_ID : $index + 1));
$manager->persist($newCategory);
$this->setReference('CategoryRef-'.$index, $newCategory);
}
$manager->flush();
问题是,当我从其他灯具(Category
)加载对此实体(Product
)的引用时,我能够获得{ {1}}我正在寻找。但是,id
与Product
的映射失败,如果我排除映射到Category
,数据库仍将填充自动生成的Category
值。< / b>所以,错误代码是:
id
在我看来,在某种程度上,我正在使用2个不同的Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`database`.`product`, CONSTRAINT `FK_D34A04AD12469DE2` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`))
:一个 - 包含id
我在代码中定义上面,第二个 - 由id
生成。
question中也描述了这个问题,但不幸的是,没有一个解决方案对我有所帮助。