2016-04-20 3 views
0

Ich mag würde Einträge auszuwählen, in dem jetzt zwischen startdate und endDate ist aber es funktioniert nicht, und ich habe keinen Fehler mit dieser Abfrage apearsWählen Sie Einträge, bei denen jetzt zwischen startdate und endDate

$qb = $this->createQueryBuilder('c') 
     ->Where(':now BETWEEN :startDate AND :endDate') 
     ->setParameter('startDate', 'c.startDate') 
     ->setParameter('endDate', 'c.endDate') 
     ->setParameter('now', new \Datetime()) 
     ->orderBy('c.id', 'DESC'); 

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

Ich habe die Abfrage wie folgt geändert und es funktioniert jetzt:

$qb = $this->createQueryBuilder('c') 
     ->Where(':now BETWEEN c.startDate AND c.endDate') 
     ->setParameter('now', new \Datetime()) 
     ->orderBy('c.id', 'DESC'); 
return $qb->getQuery()->getResult(); 
+0

Welche Abfrage dieser Erzeuger- ist, können Sie es direkt ausführen (oder über phpMyAdmin)? – kero

+0

@kingkero es war ein Fehler und Mangel an Konzentration von mir – hous

Antwort

2
$repository = $this->getDoctrine()->getRepository('AppBundle:Product'); 

$qb = $repository->createQueryBuilder('c') 
     ->where('c.startDate < :now') 
     ->andWhere('c.endDate > :now') 
     ->setParameter('now', new \Datetime()) 
     ->orderBy('c.id', 'DESC'); 

    return $qb->getQuery()->getResult(); 
+1

Vielen Dank, Ihr Code funktioniert und ich habe auch die Abfrage '$ qb = $ this-> createQueryBuilder ('c') -> Wo (': jetzt BETWEEN c.startDate UND cendDate ') -> setParameter (' jetzt ', neu \ Datetime()) -> orderBy (' c.id ',' DESC '); ' – hous

Verwandte Themen