我正在尝试获取嵌套集树的根元素。
以下是该方案:
我有一个类别表作为嵌套集
Category:
actAs:
NestedSet:
hasManyRoots: true
rootColumnName: root_id
columns:
name: { type: string(255), notnull: true, unique: false }
和视频表
Video:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true }
...
relations:
Categories:
class: Category
refClass: CategoryVideo
local: video_id
foreign: category_id
foreignAlias: Videos
这是我的问题:假设视频属于“动作”类别而“动作”是“电影”的孩子,当我从我的视频对象调用getCategories()时,我只有“动作”类别,但我想显示“电影”(Root类别),我试着像
getAncestors()
没有运气。
有人可以告诉我如何获取嵌套集的根元素吗?
由于
答案 0 :(得分:0)
试试这个:
$this->categories = Doctrine::getTable('Categories')->getTree();
$q = Doctrine_core::getTable('Categories')->createQuery('q');
$q->leftJoin('q.Translation qt')->
addOrderBy('sort ASC')->
addOrderBy('qt.cat_name ASC');
$this->categories->setBaseQuery($q);
foreach($categories->fetchRoots() as $root)
{
$options = array(
'root_id' => $root->getCategoryId()
);
foreach($categories->fetchTree($options) as $node)
{
echo $node->getName();
}
}
此致 最大