【发布时间】:2011-11-16 09:47:54
【问题描述】:
我已经定义了一个自引用实体:Category as shown in the docs。
它基本上创建了一个不可排序的树。
我应该执行什么 DQL 查询来选择所有父级、父级的父级......?
编辑:我目前选择所有类别,离开加入他们的父母。然后我使用实体方法提取所有祖先,无需额外查询:
public function hereToRoot( $allCategories )
{
$ancestors = array();
$leftJoinedParent = $this->getParent();
//add parents
while ( !is_null($leftJoinedParent) ) {
$nextAncestor = $allRoles[$leftJoinedParent->getId()];
$ancestors[] = $nextAncestor;
$leftJoinedParent = $nextAncestor->getParent();
}
return array_reverse($ancestors);
}
【问题讨论】:
标签: tree doctrine-orm dql