Расширение которое Вы привели позволяет управлять хранением дерева, а не построением из него html списка. И работает оно отлично.
А Вот вывод дерева может быть разный, зависит от уровней вложенности. Главный минус принципа "adjacency list" как раз вывод. Если вложенность неизвестна, надо писать рекурсивную функцию, а если уровня 2, то обычным перебором.
Например формируем для виджета меню массив с нужной иерархией.
public static function getMenuList(){
$root = self::findOne(2); //2 это id root элемента
$leaves = $root->getChildren()->with('children')->all();
return \yii\helpers\ArrayHelper::toArray(
$leaves,
[
'common\models\Menu'=>[ //namespace модели
'label'=>'name',
'items'=> function($model){
return \yii\helpers\ArrayHelper::toArray(
$model->children,
[
'common\models\Menu'=>[
'label'=>'name',
]
]
);
},
]
]
);
Планировал по этому расширению как раз видео сегодня записать, будет тут вечером:
https://www.youtube.com/channel/UC3jTSXXgSvQI2WJ5f...