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 :
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();
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.

Voici l'erreur que j'obtient :
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.
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
 
$query = $em->createQuery('SELECT r FROM Request r WHERE r.user NOT IN (SELECT c.worker FROM Contract c WHERE c.project = ?1)');
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.

Quelqu'un a t-il une idée svp ?

merci.