symfony2/doctrine2-dql子选择

symfony2/doctrine2-dql子选择,symfony,doctrine-orm,Symfony,Doctrine Orm,是否可以使用dql中的subselect获取数据,并将结果放入不是实体列的class属性中 hasfreelist是mysql中的类属性,但不是实体列 这是我的dql: SELECT e, DATE(e.begin) dbegin, (SELECT COUNT(g) FROM AcmeDemoBundle:list g WHERE e.id = g.fkevent) AS e.hasfreelists FROM AcmeDemoBundle:event e JOIN e.fkloc

是否可以使用dql中的subselect获取数据,并将结果放入不是实体列的class属性中

hasfreelist是mysql中的类属性,但不是实体列

这是我的dql:

SELECT e, DATE(e.begin) dbegin, 
(SELECT COUNT(g) FROM AcmeDemoBundle:list  g WHERE e.id = g.fkevent) AS e.hasfreelists     
FROM AcmeDemoBundle:event e JOIN e.fklocation l 
WHERE e.enabled=1 e.begin>=:from 
ORDER BY dbegin, e.topevent DESC
我有以下错误:

An exception has been thrown during the rendering of a template 
("[Syntax Error] line 0, col 143: Error: 
Expected Doctrine\ORM\Query\Lexer::T_FROM, got '.'")
但它什么也没告诉我。
感谢您的帮助。

在我看来,您可以定义事件和列表之间的关联,并使用添加您的选择。这样做更简单、更符合逻辑:

SELECT e, DATE(e.begin) AS dbegin, SIZE(e.lists) AS number_of_lists
FROM [...]
您仍然可以在entity类上定义一个hasFreeList方法,该方法将返回sizeof$this->lists>0

但我认为,您之所以会出现此错误,是因为您将subselect定义为e.hasfreelist。虽然它是类的属性,但这是一个DQL语法错误,应该将x从y中选择为z。此外,日期选择缺少AS运算符