【发布时间】:2021-07-03 16:32:31
【问题描述】:
尽管我进行了所有研究,但我无法通过多对一关系实现我的固定装置
我想将我的固定装置分开,因为我在很多情况下都需要它们。这是好的做法吗?
类区域
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();
}
用户夹具
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());
}
总结:
-
生成区域对象
-
将此“Territory”对象提供给 UserFixtures
-
向用户随机插入一个区域
有可能吗?尽管我尝试了所有尝试,但我还是阻止了
【问题讨论】:
-
是的,这看起来不错。 究竟是什么不起作用?你有什么努力让它发挥作用?
标签: php symfony doctrine fixtures many-to-one