Я реализую динамическую навигационную панель в Yii2, которая отображает выпадающее меню, выбирая элементы из базы данных. Теперь проблема в том, что когда я вызываю функцию, в которой я заполняю массив, происходит сбой системы с ошибкой:
"В foreach () указан неверный аргумент"
, поскольку не находит переменную с массивом элементов. Я не знаю, какой контроллер должен передавать аргументы в главное представление, мне просто нужен массив всех элементов в модели данных (т.е. курс).
Я пробовал с этим, но все еще не работает.
/* @var $courses \app\models\Course[] */
Макеты / главный
function items($courses)
{
$items = [];
foreach ($courses as $course) {
array_push($items, ['label' => $course->title, 'url' =>
Url::to(['course', 'id' => $course->id])]);
}
return $items;
}
$menuItems = [
// other items ...
'label' => 'Courses', 'items' => items($courses)
];
echo Nav::widget([
'options' => ['class' => 'uk-navbar-item'],
'encodeLabels' => false,
'items' => $menuItems
]);
Как передать переменную $courses
в макеты / основной вид? Спасибо всем заранее.