交响乐/固定装置"Reference already exists, use method setReference in order to override it"



我创建了两个fixture文件并想链接它们,但得到了错误:引用"genre_reference";已经存在,请使用方法setReference来覆盖它。

这是我的书固定装置:

class LivreFixtures extends Fixture implements DependentFixtureInterface
{
public function load(ObjectManager $manager): void
{
$faker = Factory::create('fr_FR');
$faker->seed(123);
for ($i = 0; $i < 10; $i++) {
$livre = new Livre();
$livre->setTitre($faker->sentence($nbWords = 4, $variableNbWords = true));
$livre->setAuteur($faker->name);
$livre->setDescription($faker->text);
$livre->setDateDeParution($faker->dateTime($format = 'Y-m-d'));
$livre->setGenre($this->getReference('genre_reference'));
$manager->persist($livre);
}
$manager->flush();
}
public function getDependencies()
{
return array(
GenreFixtures::class,
);
}
}

我的流派固定文件:

class GenreFixtures extends Fixture
{
public function load(ObjectManager $manager): void
{
$faker = Factory::create('fr_FR');
$faker->seed(123);

for ($i=0; $i < 5; $i++) {
$genre = new Genre();
$genre->setName($faker->colorName);
$manager->persist($genre);
$this->addReference('genre_reference', $genre);
}
$manager->flush();
}
}

我真的不懂setreference方法,怎么做。有什么帮助吗?

我认为您应该在流派引用名称中添加$I

$this->addReference('genre_reference_' . $i, $genre);

之后,您可以通过使用它

$this->getReference('genre_reference_0');
//OR
$this->getReference('genre_reference_1');
//OR
$this->getReference('genre_reference_' . $i);

相关内容

  • 没有找到相关文章

最新更新