2012-04-06 10 views
6

Ich bin hier fest und ich verbringe die letzten 2 Tage dieses Problem zu lösen, aber gescheitert. Ich schreibe eine Abfrage in mein Repository, um die Einträge für den aktuellen Monat zu erhalten. hier ist meine Frage: -INTERVALL 1 Monat funktioniert nicht Mit symfony2 Doktrin?

$this->getEntityManager() 
->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id='.$id.' 
and a.date > DATE_SUB(CURRENT_TIMESTAMP(),INTERVAL 1 MONTH)') 

Wenn ich versuche, dies führen Sie es mir ein Fehler gibt

[Syntax Error] line 0, col 133: Error: Expected Doctrine\ORM\Query\Lexer::T_COMMA, got '1' 

Auch habe ich versucht, this thing aber hat mir geholfen, nicht.

Antwort

24

Sie Parameterbindung verwenden sollten:

$query = $em->createQuery('SELECT count(a) FROM CollegeStudentBundle:StudentAttendance a where a.student_id = :id and a.date > :date'); 
$query->setParameter('id', $id); 
$query->setParameter('date', new \DateTime('-1 month')); 
+0

Vielen Dank jkucharovic. Es war so nützlich. Können Sie mir sagen, wie kann ich das gleiche mit INTERVAL 1 YEAR – ScoRpion

+0

'$ query-> setParameter ('Datum', neue \ DateTime ('- 1 Jahr'));' – jkucharovic

+0

und können Sie sagen, wie kann ich jetzt verwenden hier – ScoRpion

Verwandte Themen