Bonjour à tous,

Malgré la documentation et la vidéo de grafikart sur les fixtures symfony, je ne parviens pas à solutionner mon problème.
J'utilise symfony 7 / doctrine-fixtures-bundle 4.1

J'ai 2 fixtures. UserFixtures et ProfilFixtures.
l'objet User a besoin d'un objet Profil préalablement créé.

Ma fixture ProfilFixtures :

namespace App\DataFixtures;

use App\Entity\Profil;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;

class ProfilFixtures extends Fixture
{
    public const PROFIL_STANDARD = 'profil_standard';
    public function load(ObjectManager $manager): void
    {
        $profil = new Profil();
        $profil->setName('STANDARD');
        $profil->setCreatedAt(new \DateTime('now'));
        $profil->setCreatedBy('André DUPONT');
        $manager->persist($profil);
        $manager->flush();
        $this->addReference(self::PROFIL_STANDARD, $profil);

    }
}

Ma fixture UserFixtures :

namespace App\DataFixtures;

use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;

class UserFixtures extends Fixture
{
    private $userPasswordHasher;
    public function __construct(UserPasswordHasherInterface $userPasswordHasher)
    {
        $this->userPasswordHasher = $userPasswordHasher;
    }
    public function load(ObjectManager $manager): void
    {
        $user = new User();
        $user->setEmail('dupont@aa.com');
        $user->setRoles(['ROLE_USER']);
        $user->setProfil($this->getReference(ProfilFixtures::PROFIL_STANDARD, Profil::class));
        $user->setPassword($this->userPasswordHasher->hashPassword($user, 'password'));
        $manager->persist($user);
        $manager->flush();
    }
}

Lorsque je charge mes fixtures, j'ai l'erreur :
Reference to "profil_standard" for class "App\DataFixtures\Profil" does not exist

Pourtant la fixture ProfilFixtures est bien chargée avant celle des utilistateurs dans la console:

purging database
loading App\DataFixtures\ProfilFixtures
loading App\DataFixtures\UserFixtures

Si je log ma référence directement dans ProfilFixtures :

dd($this->getReference(ProfilFixtures::PROFIL_STANDARD, Profil::class));

elle s'affiche bien dans la console :
^ App\Entity\Profil^ {#670
-id: 38
-name: "STANDARD"
-created_at: DateTime @1746522834 {#674
date: 2025-05-06 09:13:54.818294 UTC (+00:00)
}
-created_by: "André Dupont"
-updated_at: null
-updated_by: null
}

J'ai suivi la doc sur le partage d'objet ici :
https://symfony.com/bundles/DoctrineFixturesBundle/current/index.html#sharing-objects-between-fixtures

Mais cela ne fonctionne pas.
Si quelqu'un peut m'éclairer

Je vous remercie d'avance

Aucune réponse