[英]Fixtures many to one symfony
尽管我做了所有的研究,但我无法通过多对一关系实现我的固定装置
我想分开我的灯具,因为我在很多情况下都需要它们。 这是好的做法吗?
班级领地
Entity Territory
{
private $id;
private $department;
}
类用户
Entity User
{
private $id;
private $name;
@ORM\ManyToOne(targetEntity="App\Entity\Territory")
private $territory_id
}
领土装置
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());
}
总之 :
生成领土对象
将此“领土”对象提供给 UserFixtures
向用户随机插入一个领土
是否有可能 ? 尽管我做了很多尝试,我还是阻止了
//public $territories = [];
应该
$territory = [];
和
$manager->persist($territoire[$k]);
应该
$manager->persist($territory[$k]);
根据您的其余代码。
如果这不能解决您的问题,您必须告诉我们您遇到了什么错误以及您试图解决的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.