2015-11-16 2 views
0

J'ai un problème d'héritage dans symfony2 et doctrine. J'ai une classe A et une sous classe B. J'ai une autre classe C qui a une collection de B. Je fais une jointure entre C et B mais je voudrais ajouter une contrainte sur cette jointure par exemple je voudrais obtenir seulement les résultats qui ont moins d'un mois sur la collection de B pour chaque objet C. Mais le champ « date » est sur la Une table, donc quand je fais mon rejoindre:Héritage et rejoindre symfony et doctrine

$qb = $this->createQueryBuilder('d'); 
      $qb->leftJoin('d.Cobject', 'c') 
      ->leftJoin('c.Bcollection', 'b'); 

La jointure entre A et B est implicite et je voudrais ajouter une contrainte sur cette jointure. Comment je peux faire ça?

Merci.

Répondre

0

Je ne suis pas sûr de comprendre votre problème mais l'idée suivante pourrait vous aider.

public function yourFunction() { 

    $gap = new \DateTime('-30days'); 

    $qb = $this->createQueryBuilder('d') 
     ->leftJoin('d.Cobject', 'c'); 

    if (d.date <= $gap) { 
     $qb->leftJoin('c.Bcollection', 'b'); 
    } 

    return $qb->getQuery()->getResult(); 
} 

Vive