Ajout d'eleves dans la fixture pour les ateliers

This commit is contained in:
Aymeric SERRA 2023-02-09 12:08:36 +01:00
parent 9a334427fe
commit 2cba9fc890
Signed by: oupson
GPG Key ID: 3BD88615552EFCB7
2 changed files with 30 additions and 0 deletions

View File

@ -89,3 +89,8 @@ symfony console d:m:m
### Question 13 ### Question 13
Pas de commandes. Pas de commandes.
### Question 14
```bash
symfony console doctrine:fixtures:load
```

View File

@ -6,6 +6,7 @@ use App\Entity\Atelier;
use App\Entity\User; use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager; use Doctrine\Persistence\ObjectManager;
use Faker\Generator;
class AtelierFixture extends Fixture class AtelierFixture extends Fixture
{ {
@ -17,14 +18,38 @@ class AtelierFixture extends Fixture
->setNom("test") ->setNom("test")
->setPrenom("test") ->setPrenom("test")
->setPassword(""); ->setPassword("");
$users = $this->createUsers($manager, $faker);
$manager->persist($user); $manager->persist($user);
for ($i = 0; $i <= 20; $i++) { for ($i = 0; $i <= 20; $i++) {
$atelier = new Atelier(); $atelier = new Atelier();
$atelier->setNom($faker->word) $atelier->setNom($faker->word)
->setDescription("# " . $faker->sentence(3) . "\n" . $faker->paragraph()) ->setDescription("# " . $faker->sentence(3) . "\n" . $faker->paragraph())
->setInstructeur($user); ->setInstructeur($user);
foreach ($faker->randomElements($users, $faker->randomNumber() % sizeof($users)) as $user) {
$atelier->addEleve($user);
}
$manager->persist($atelier); $manager->persist($atelier);
} }
$manager->flush(); $manager->flush();
} }
public function createUsers(ObjectManager $manager, Generator $faker): array
{
$users = [];
for ($i = 0; $i < 100; $i++) {
$user = new User();
$user
->setEmail($faker->email())
->setNom($faker->lastName())
->setPrenom($faker->firstName())
->setPassword("");
$manager->persist($user);
$users[] = $user;
}
return $users;
}
} }