Lý do tại sao nó không trả về bất cứ điều gì là vì Doctrine thoát khỏi biểu thức - SQL được tạo là
WHERE (date > 'DATE_SUB(CURDATE(), INTERVAL 7 DAY)')
hơn là
WHERE (l.action_time > DATE_SUB(CURDATE(), INTERVAL 7 DAY))
Bạn có thể buộc nó hoạt động như thế này:
$date = new Doctrine_Expression('DATE_SUB(CURDATE() , INTERVAL 7 DAY)');
$q->where('date > ' . $date);
Tuy nhiên, đây không phải là lựa chọn an toàn nhất vì đầu vào không thoát và không phải là phương pháp hay ...