Bonjour,

J'ai une requête SQL avec des jointures :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SELECT f.id, f.nom
FROM conffilieres f
  LEFT OUTER JOIN confbriques b
  ON f.id = b.filiere_id
    LEFT OUTER JOIN confapplications a
    ON b.id = a.brique_id
      LEFT OUTER JOIN confmeteos_confapplications ma
      ON a.id = ma.confapplications_id
        LEFT OUTER JOIN confmeteos m
        ON ma.confmeteos_id = m.id
WHERE m.id = ID (passer en paramètre)
Je voudrais la "convertir" en dql mais j'ai un soucis au niveau du dernier LEFT OUTER JOIN.

Ce que j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function findFilieresByMeteoClient($meteo_id)
{
    $query = $this->_em->createQuery("
        SELECT f
        FROM MeteoApplisAdminBundle:ConfFilieres f
        LEFT JOIN MeteoApplisAdminBundle:ConfBriques b
        WITH f.id = b.filiere
        LEFT JOIN MeteoApplisAdminBundle:ConfApplications a
        WITH b.id = a.brique
 
        [...] (Il me manque cette partie)
 
        WHERE m.id = '$meteo_id'
    ");
 
    return $query->getResult();

Je pense qu'il faut mettre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
LEFT JOIN MeteoApplisAdminBundle:ConfMeteos m
WITH a.id = m.applications
mais j'ai une erreur :

[Semantical eRROR LINE o, cal 279 near applications WHERE: Error Invalid PathExpression.
StateFieldPathExpression or SingleValuedAssociationField expected

Est-ce que quelqu'un sait comment on fait vu que j'ai une relation manyToMany entre l'entité ConfApplications et ConfMeteos.

Merci