Anledningen till att den inte returnerar något är för att Doctrine undkommer uttrycket - den genererade SQL är
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
snarare än
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
Du kan tvinga den att fungera så här:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
Detta är dock inte det säkraste alternativet, eftersom inmatningen inte kommer undan och inte är bra praxis...