Реализовано через режим «много деревьев» по этому root может быть 1-2,3
Корневой level = 1 у меня он рут, все корневые level = 2, естественно дочерние наследуются от корневых.
Дабы вывести список сделал так:
Код: Выделить всё
public function getCategory($root = 1){
if($root){
$criteria = new CDbCriteria;
$criteria->condition = 'root = :root AND level <> 0';
$criteria->params = array(':root' => $root);
$criteria->order = 'lft ASC';
$category = self::model()->findAll($criteria);
foreach($category as $key=>$value){
$level = $value->level;
for($i=0; $i < $level-2; $i++){ ///тут указал -2 так как root level = 1 корневые level 2
$value->title = '. '.$value->title.'';
}
}
return CHtml::listData($category, 'id', 'title');
}
return false;
}
Получаю вот такой вот список:
Root
Фильмы
. Отечественные
. . Боевик
. . . Новики
. . Комедии
. Зарубежные
Музыка
. Рок
. Попса
. Транс
Другие варианты вывода есть?