Bonjour,
Je rencontre un petit problème avec mon code.
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,
])
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
Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
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');