Files
chill-bundles/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelations.php

55 lines
2.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Chill\PersonBundle\DataFixtures\ORM;
use Chill\PersonBundle\Entity\Relationships\Relation;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Bundle\FixturesBundle\FixtureGroupInterface;
use Doctrine\Persistence\ObjectManager;
class LoadRelations extends Fixture implements FixtureGroupInterface
{
public const RELATION_KEY = 'relations';
public const RELATIONS = [
['title' => ['fr' => 'Mère'], 'reverseTitle' => ['fr' => 'Fille']],
['title' => ['fr' => 'Mère'], 'reverseTitle' => ['fr' => 'Fils']],
['title' => ['fr' => 'Père'], 'reverseTitle' => ['fr' => 'Fille']],
['title' => ['fr' => 'Père'], 'reverseTitle' => ['fr' => 'Fils']],
['title' => ['fr' => 'Frère'], 'reverseTitle' => ['fr' => 'Frère']],
['title' => ['fr' => 'Soeur'], 'reverseTitle' => ['fr' => 'Soeur']],
['title' => ['fr' => 'Frère'], 'reverseTitle' => ['fr' => 'Soeur']],
['title' => ['fr' => 'Demi-frère'], 'reverseTitle' => ['fr' => 'Demi-frère']],
['title' => ['fr' => 'Demi-soeur'], 'reverseTitle' => ['fr' => 'Demi-soeur']],
['title' => ['fr' => 'Demi-frère'], 'reverseTitle' => ['fr' => 'Demi-soeur']],
['title' => ['fr' => 'Oncle'], 'reverseTitle' => ['fr' => 'Neveu']],
['title' => ['fr' => 'Oncle'], 'reverseTitle' => ['fr' => 'Nièce']],
['title' => ['fr' => 'Tante'], 'reverseTitle' => ['fr' => 'Neveu']],
['title' => ['fr' => 'Tante'], 'reverseTitle' => ['fr' => 'Nièce']],
];
public static function getGroups(): array
{
return ['person_relations'];
}
public function load(ObjectManager $manager)
{
foreach (self::RELATIONS as $key => $value){
print "Creating a new relation type: relation" . $value['title']['fr'] . "reverse relation: " . $value['reverseTitle']['fr'] . "\n";
$relation = new Relation();
$relation->setTitle($value['title'])
->setReverseTitle($value['reverseTitle']);
$manager->persist($relation);
$this->addReference(self::RELATION_KEY.$key, $relation);
}
$manager->flush();
}
}