Bonjour tous le monde, je suis en train de créer une commande afin d'inscrire des personnes sur un site avec des données provenant d'un fichier csv, cependant je bloque pour ajouter un element d'une clé étrangère ( setProfil() ).

j'ai ce message : Argument 1 passed to App\Entity\User::setProfil() must be an instance of App\Entity\TypeProfil or null, string given,

je ne sais pas vraiment comment régler ca, auriez vous une idée s'il vous plait? merci a vous

foreach ($this->getDataFromFile() as $row){
            if (array_key_exists('email',$row)&& !empty($row['email'])){
            $user = $this->userRepository->findOneBy([
                'email'=>$row['email']
            ]);

            if (!$user){
                $user = new User();

                $user->setConfirmationToken($this->tokenGenerator->generateToken());

                $user->setEmail($row['email'])
                     ->setFirstname($row['firstname'])
                     ->setLastname($row['lastname'])
                     ->setCompany($row['company'])
                     ->setProfil($row['profil']);

3 réponses


Bonjour,

Il faut que tu instancie un objet TypeProfil avec la valeur de $row['profil'] pour ensuite l'assigner à ton user avec setProfil.

yonea80
Auteur

j'ai essayé comme ca, je sais pas si c'est comme tu voulais m'expliquer mais ca ne fonctionne pas car ça affiche un array

            $user = new User();

            $user->setConfirmationToken($this->tokenGenerator->generateToken());

            $pro = new TypeProfil();
            $pro = $user->$row['profil'];

            $user->setEmail($row['email'])
                 ->setFirstname($row['firstname'])
                 ->setLastname($row['lastname'])
                 ->setCompany($row['company']);
            $user->setProfil($pro);

Oui, mon explication n'est pas très claire...
la méthode setProfil de ton entité user attend visiblement un param de type TypeProfil, donc il faut ll'instancier en utilisant la valeur chargée depuis le csv
A quoi ressemblent ton csv, et ton entité TypeProfil ?