Je reponds à moi-même lol
Primo : il faut un query_builder dans EntityType
Donc voici mon DomainNameFormType :
class DomainNamesFormType extends AbstractType
{
private $security;
public function __construct(Security $security)
{
$this->security = $security;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$user = $this->security->getUser();
$builder
->add('submit', SubmitType::class, [
'attr' => [
'class' => 'btn btn-primary'
],
'label' => 'Valider'
])
->add('domainName', EntityType::class, array(
'class' => DomainName::class,
'choice_label' => 'name',
'query_builder' => function (DomainNameRepository $domainNameRepository) use ($user) {
return $domainNameRepository->findDomainNames($user->getId());
},
'label' => 'Attribuer un utilisateur au projet : ',
));
}
}
Et autre curiosité de PHP / Symfony, il faut dégager 2 lignes (que j'ai gardées en commentaire) dans la fonction FindDomaineNames() du DomainNameRepository :
public function findDomainNames($user_id): querybuilder
{
$qb = $this->createQueryBuilder('d')
->innerJoin('d.users', 'user')
->andWhere('user.id = :val')
->setParameter('val', $user_id)
->orderBy('d.id', 'ASC')
->setMaxResults(10)
// ->getQuery()
// ->getResult()
;
return $qb;
}
Si vous gardez getQuery et getResult, le résultat sera un array alors que c'est un querybuilder qui est attendu.
Voilà, bien content d'avoir enfin trouvé, on peut clore le sujet!