Bonjour à tous

J'aimerai savoir si il y a moyen de pouvoir utiliser des données réelles lors d'une création de fixtures qui auraient une relation entre une/plusieurs entités :

Dans mon cas précis j'ai créé une entité "Marques" et une autre "Véhicules" (ManyToOne, voir ci-dessous) qui marchaient bien tant qu'elles n'étaient pas en relation ...

De ce que je comprends il n'est pas possible de faire un setMarque() dans VehiculesFixtures en prenant une valeur random de la fixture MarquesFixtures ?
On est obligé de passer par un set/get reference + $i avec un nom bidon genre "ma_marque + $i" ?

Que dois-je mettre comme valeur dans $v->setMarque() vu qu'il n'accepte plus de string?

Merci d'avance pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
namespace App\DataFixtures;
 
use App\Entity\Marques;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
 
class MarquesFixtures extends Fixture
{
    public function load(ObjectManager $manager): void
    {
        $tblMarques=['Alfa-Romeo','Aston-Martin','Bentley','BMW','Citroen','DS automobiles','Jaguar','Mercedes','Peugeot','Renault','Rolls-Royce','Toyota','Volkswagen'];
 
        for($i=0;$i<count($tblMarques);$i++){
 
        $marque = new Marques();
 
        $manager->persist($marque);
        $manager->flush();}
    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 
<?php
 
namespace App\DataFixtures;
 
use App\DataFixtures\Fixtures;
use App\Entity\Vehicules;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Validator\Constraints\Length;
 
class VehiculesFixtures extends Fixture
{
 
    public function load(ObjectManager $manager)
    {
        $tblMarques = ['Alfa-Romeo', 'Aston-Martin', 'Bentley', 'BMW', 'Citroen', 'DS automobiles', 'Jaguar', 'Mercedes', 'Peugeot', 'Renault', 'Rolls-Royce', 'Toyota', 'Volkswagen'];
 
        $motorisations = ["Diesel", "Essence", "GPL", "Hybride", "Electrique"];
        $types = ["Fourgonnette", "Familiale", "Citadine", "Véhicule entreprise", "Véhicule industriel", "Camionnette"];
        $boites = ["Manuelle", "Auto"];
 
        $lengthMarques = count($tblMarques);
        $lengthMotorisations = count($motorisations);
        $lengthTypes = count($types);
        $lengthBoites = count($boites);
 
        for ($i = 0; $i <= 10; $i++) {
 
            //Random sur les valeurs des tableaux fictifs
            $randomMarques = rand(0, $lengthMarques - 1);
            $randomMotorisations = rand(0, $lengthMotorisations - 1);
            $randomTypes = rand(0, $lengthTypes - 1);
            $randomBoites = rand(0, $lengthBoites - 1);
 
            //Random sur les dates
            // $timestamp = rand(strtotime("Jan 01 2015"), strtotime("Nov 01 2023"));
            // $random_Date = new \DateTime("d-m-Y",);
 
            $v = new Vehicules();
            $v->setMarque('coucou')
                ->setModele("nc")
                ->setCouleur('blanche')
                ->setMotorisation($motorisations[$randomMotorisations])
                ->setTypeVehicule($types[$randomTypes])
                ->setBoite($boites[$randomBoites])
                ->setCylindree(rand(1000, 5600))
                ->setNbPlaces(rand(1, 10))
                ->setNbPortes(rand(2, 5))
                ->setPrixVente(rand(3500, 300000))
                ->setKilometrage(rand(1000, 200000))
                ->setChevauxDin(rand(1, 1000))
                ->setChevauxFiscaux(10.00, 400.00);
            // $v->setDateMiseEnCirculation($random_Date);
            // $v->setDateMiseEnVente($random_Date);
 
            $manager->persist($v);
        }
 
        $manager->flush();
    }
}