我正在尝试构建一个查询,从数据库中检索所有最近和即将发生的活动。
实体activity
有一个名为date
的字段DateTime
。所以在我的存储库中,我正在考虑构建这样的东西:
$query = $repository
->createQueryBuilder('a');
$query->orderBy( 'DATEDIFF( a.date, NOW())' , 'ASC');
$query->setMaxResults( 6 );
return $query;
不幸的是我收到以下错误:
[Syntax Error] line 0, col 59: Error: Expected end of string, got '('
我的查询生成的Dql:
SELECT a FROM MyBundle\Entity\Activity a ORDER BY DATEDIFF( a.date, NOW()) ASC
我也尝试过安装beberlei/DoctrineExtensions
,但要么它无法正常工作,要么我无法正确配置它。
有人有什么建议吗? 提前致谢
答案 0 :(得分:0)
为什么不使用
$query = $repository
->createQueryBuilder('a');
$query->orderBy( 'DATEDIFF( a.date, CURRENT_TIMESTAMP())' , 'ASC');
$query->setMaxResults( 6 );
return $query;
答案 1 :(得分:0)