【发布时间】:2019-01-21 10:58:33
【问题描述】:
我在 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 变量传递给布局/主视图?提前谢谢大家。
【问题讨论】:
-
你在哪里制作
$my_courses数组? -
只是一个名字,我编辑了也许现在更清楚了。
-
你把
function items()放在视图里面了吗? -
是的,和上面的代码一样。
-
这不是正确的做法,
$courses来自哪里,您将作为参数传递给items()函数? ti 来自控制器动作吗?请提供完整的代码参考,如果控制器代码太大,最好通过 pastebin 链接添加控制器代码