Der Grund, warum es nichts zurückgibt, ist, dass Doctrine den Ausdruck maskiert – das generierte SQL ist
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
statt
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
Sie könnten es so erzwingen:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
Dies ist jedoch nicht die sicherste Option, da die Eingabe nicht maskiert wird und keine gute Praxis ist ...