Bonjour,

Je rencontre un petit problème avec mon code.

Ce que je fais

Lors de l'enregistrement d'un user dans une entreprise , dans mon RegistrationFormType, je souhaite relié un manager a mon salarié.
Dans ma "fonction " manager, je récupère les users qui on un rôle manager.
Cela fonctionne, il me récupère tous les users qui sont dans ma base de donnée et qui ont un rôle manager.
Mais je veux récuperer que les users => qui on un rôle manager => dans l'entreprise dans laquelle je souhaite ajouter mon user.
Je sais qu'il faut que je face un inner join avec mon entreprise mais je sais pas trop comment faire

 ->add('manager', EntityType::class, [
                // looks for choices from this entity
                'class' => User::class,

                'query_builder' => function (UserRepository $er) {
                    return $er->createQueryBuilder('u')
                        ->andWhere('u.roles LIKE :role')
                        ->setParameter('role', '%"' . 'ROLE_MANAGER' . '"%')
                        ->orderBy('u.roles', 'ASC');
                },

                // uses the User.username property as the visible option string
                'choice_label' => 'username',

                // used to render a select box, check boxes or radios
                // 'multiple' => true,
                // 'expanded' => true,
            ])

Ce que je veux

Je veux recupérer les user, qui on le rôle manager, dans l'entreprise dans laquelle j'enregistre le user , pour cela je sais qu'il faut que je face un inner join avec mon entreprise mais je sais pas trop comment faire

Ce que j'obtiens

Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

2 réponses


bidule
Réponse acceptée

Salut, un truc dans le genre...

  $query = $this->createQueryBuilder('u')
              ->select('u', 'e')
              ->join('u.entreprise', 'e') // Liaison de class user avec la class entreprise
               ->andWhere('u.roles LIKE :role')
              ->andWhere('e.entrreprise = $this->getUser()->getEntreprise()') // Tu récupères l'entreprise de l'utilsateur conncté
              ->setParameter('role', '%"' . 'ROLE_MANAGER' . '"%')
              ->orderBy('u.roles', 'ASC');
mary_25
Auteur

Salut , je vais tester merci