【发布时间】:2012-06-01 12:33:28
【问题描述】:
我有一个名为“位置”的嵌套集(使用 Gedmo 树)实体。实体“Appartment”有 location_id,我需要做的是映射标量值,例如“path”来查询返回所有 appartments。
在 Doctrine1 中,我有这个代码:
/**
* Add "path" to each element
*
* @param Doctrine_Query $query
* @param string $separator
*/
protected function addScalar_path(Doctrine_Query $query, $separator=", ")
{
$subquery = "k99.root_id=o.root_id AND k99.lft<=o.lft AND k99.rgt>=o.rgt AND k99.level<=o.level" ;
$query->addSelect("(SELECT GROUP_CONCAT(k99.name ORDER BY k99.level SEPARATOR '$separator') FROM Location k99 WHERE $subquery) AS path") ;
}
注意:“o”别名用于主查询。 这段代码可以让我使用
{foreach .... as $appartment}
{$appartment->path}
...
哪个会打印:
Australia, Victoria, Melbourne, ...other children...
如何在 D2 中做同样的事情?以及如何在我的 symfony2 项目中包含学说扩展?
【问题讨论】:
标签: symfony doctrine-orm