2012-04-06 36 views
6

Estoy atrapado aquí y pasé los últimos 2 días resolviendo este problema pero fallado. Estoy escribiendo una consulta dentro de mi repositorio para obtener las entradas del mes actual. aquí está mi consulta: -INTERVALO 1 MES no funciona Con symfony2 doctrine?

$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)') 

Cuando trato de ejecutar este me da un error

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

Incluso he intentado this thing pero no me ayudó.

Respuesta

24

usted debe utilizar el enlace de parámetros:

$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

Muchas gracias jkucharovic. Fue muy útil. ¿Puede decirme cómo puedo hacer lo mismo con INTERVAL 1 AÑO – ScoRpion

+0

'$ query-> setParameter ('date', new \ DateTime ('- 1 year'));' – jkucharovic

+0

y puede decir cómo puedo usar NOW aquí – ScoRpion

Cuestiones relacionadas