Помогите разобраться, в виджеты Yii2 nav и menu можно передавать массивы для построения меню.
Без массива это выглядит примерно так:
'items' => [
['label' => 'Home Page', 'url' => ['site/']],
['label' => 'About Us', 'url' => ['site/about']],
['label' => 'News Events', 'url' => ['site/event']],
['label' => 'Services', 'url' => ['site/service']],
]
С массивом так:
'items' => [
Category::CategoryMenu(),
],
И вылазит проблема - если массив одномерный, то все нормально за исключением одного единственного пункта меню:
Array ( [label] => Tamen causa ut diam [url] => Array ( [0] => /site/category?id=4 ) )
Как только сую многомерный массив, NAV сразу выдает ошибку, MENU ничего не выводит:
Array ( [0] => Array ( [label] => Appellatio vel hos autem [url] => Array ( [0] => /site/category?id=5 ) ) [1] => Array ( [label] => Consequat [url] => Array ( [0] => /site/category?id=6 ) ) [2] => Array ( [label] => Illum secundum [url] => Array ( [0] => /site/category?id=3 ) ) [3] => Array ( [label] => Illum secundum1 [url] => Array ( [0] => /site/category?id=8 ) ) [4] => Array ( [label] => Nibh valde tincidunt [url] => Array ( [0] => /site/category?id=7 ) ) [5] => Array ( [label] => Tamen causa ut diam [url] => Array ( [0] => /site/category?id=4 ) ) )
Функция в которой вытаскиваю массив выглядит так:
public static function CategoryMenu() {
$item=[];
$categories=Category::find()->orderBy('title')->all();
foreach ($categories as $category) {
$item[]= array(
'label'=>$category['title'],
'url'=>array('/site/category?id='.$category['id'])
);
}
return $item;
}
Переносить код во вьюшку не хочется, а вытянуть с модели не получается.