当两个灯具相互依赖加载时,如何控制灯具加载顺序?Doctrine Fixtures:getOrder()with Join Tables
我的模式有一个Book实体,一个Author实体和一个BookAuthor实体。书籍可以有许多作者,而BookAuthor是必需的,因为它有一个名为'main'的附加字段,指示作者是否是本书的主要作者。
在BookFixtures,我参考BookAuthorFixtures:
$book1->addBookAuthor($manager->merge($this->getReference('book-author-1')));
在BookAuthorFixtures,我参考BookFixtures:
$bookAuthor1->setBook($manager->merge($this->getReference('book-1')));
其中一个夹具必须被首先加载,这意味着它引用的夹具是一个未定义指数。
解决这个问题有什么窍门吗?
这个question解决几乎相同的问题,但配置是不同的,尽管接受的答案,问题仍未解决。
感谢您的回复并提供了代码段。不幸的是,这种方法没有利用OrderedFixtureInterface功能,这意味着一个灯具必须创建另一个灯具的实例。然而,这将完成基本任务,所以如果没有其他人知道我走出自己的角落,我很可能会接受答案。 Thx再次 – cantera 2012-02-19 01:47:41
嗨!另一种方法可能是让图书实体没有作者(可能有一些书籍由未知作者编写),那么你可以先加载书籍和作者的装置,然后加载BookAuthor装置。此外,我认为BookAuthor实体必须与书一起创建,但也许有人有更好的方法来解决您的问题。问候 – alghimo 2012-02-19 08:13:34