问题描述
尽管我做了所有研究,但我无法通过多对一关系实现我的固定
我想将我的灯具分开,因为我在很多情况下都需要它们。这是好的做法吗?
班级领土
Entity Territory
{
private $id;
private $department;
}
班级用户
Entity User
{
private $id;
private $name;
@ORM\ManyToOne(targetEntity="App\Entity\Territory")
private $territory_id
}
TerritoryFixtures
class TerritoryFixtures extends Fixture
{
public const TERRITORIES = 'territories';
//public $territories = [];
$datas = [
[1,'AAA'],[5,'BBB'],[8,'CCC'],];
foreach ($datas as $k => $data) {
$territory[$k] = new Territory();
$territory[$k]->setId($datas[$k][0]) // i need
->setDepartment($datas[$k][1]);
$manager->persist($territoire[$k]);
$this->addReference(self::TERRITORIES,$territory[$k]); // only the last datas
// $this->addReference($this->territories,$territory[$k]);
}
$manager->flush();
}
UserFixtures
class UserFixtures extends Fixture implements DependentFixtureInterface
{
public function getDependencies()
{
return [
TerritoryFixtures::class
];
}
public function load(ObjectManager $manager)
{
$territories = $this->getReference(TerritoryFixtures::TERRITORIES);
// **step 1: how to recover all my territories**
$faker = Factory::create();
for ($a = 0; $a < 10; $a++) {
$user = new User();
// **step 2 : how to insert a territory entity randomly**
$user->setDepartement($faker->randomElement($territories))
->setName($faker->lastName());
}
总结:
有可能吗?尽管我做了很多尝试,我还是阻止了
解决方法
//public $territories = [];
应该
$territory = [];
和
$manager->persist($territoire[$k]);
应该
$manager->persist($territory[$k]);
根据您的其余代码。
如果这不能解决您的问题,您必须告诉我们您遇到了什么错误以及您试图解决的问题。