La raison pour laquelle il ne renvoie rien est que Doctrine échappe à l'expression - le SQL généré est
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
plutôt que
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
Vous pouvez le forcer à fonctionner comme ceci :
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
Ce n'est pas l'option la plus sûre cependant, car l'entrée n'est pas échappée et n'est pas une bonne pratique...