我在我的项目中使用kartik SideNav小部件。我希望菜单处于活动状态并在我点击它时打开但它不起作用。实际上我不知道$ item和$ type变量如何在sidenav中使用。提前解决问题。
我的代码如下。
$type = SideNav::TYPE_PRIMARY;
$item = Yii::$app->controller->action->id;
echo SideNav::widget([
'type' => $type,
'encodeLabels' => false,
'items' => [
['label' => 'Home', 'icon' => 'home', 'url' => Url::to(['/site/index']), 'active' => ($item == 'index')],
['label' => '<span class="pull-right badge">2</span> Products', 'icon' => 'book', 'items' => [
['label' => '<span class="pull-right badge"></span> Products', 'url' => Url::to(['/products']), 'active' => ($item == 'http://localhost/test_project_yii2/backend/web/products')],
['label' => '<span class="pull-right badge"></span> Add Product', 'url' => Url::to(['/products/create']), 'active' => ($item == '/products/create')],
]],
],
]);
答案 0 :(得分:0)
$item
是您操作的ID,例如actionCreate
将在此处输出create
。
在这里添加:
$controllerId = Yii::$app->controller->id;
哪个会为products
输出ProductsController
。
在选项active
中使用:
'active' => $controller == 'products' && $item == 'create'
您应该将$item
重命名为$actionId
或类似的内容。