我創建了 2 個裝置檔案并想鏈接它們但得到錯誤:對“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 方法,如何去做。有什么幫助嗎?
uj5u.com熱心網友回復:
我認為您應該將$i添加到您的流派參考名稱中。
$this->addReference('genre_reference_' . $i, $genre);
之后,您可以通過以下方式使用它
$this->getReference('genre_reference_0');
//OR
$this->getReference('genre_reference_1');
//OR
$this->getReference('genre_reference_' . $i);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/358346.html
