Bonjour à tous,
Je suis acutellement en train d'essayer de faire des requête DQL, mais j'ai énormément du mal à faire des requêtes à la main pour des soucis d'optimisation.
Voici un exemple :
En gros j'aimerais récupérer sous forme d'objet un User. Cette user est présent dans l'objet Request (donc dans la table Request j'ai un champs user_id). Worker est également un user mais dans l'objet Contract.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $query = $em->createQuery('SELECT r.user FROM Request r WHERE r.user NOT IN (SELECT c.worker FROM Contract c WHERE c.project = ?1)'); $query->setParameter(1, $project); $candidates = $query->getResult();
Voici l'erreur que j'obtient :
D'après ce que j'ai compris, on ne peut récupérer un champs partiel. Du coup, même si ce n'est pas vraiment ce que je veux, j'ai tout simplement fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [Semantical Error] line 0, col 9 near 'user FROM Request': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
Cependant maitenant j'ai également la même erreur au niveau du sous reqûete, et là je bloque complétement, je ne sais pas comment m'y prendre autrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $query = $em->createQuery('SELECT r FROM Request r WHERE r.user NOT IN (SELECT c.worker FROM Contract c WHERE c.project = ?1)');
Quelqu'un a t-il une idée svp ?
merci.
Partager