Задача: сделать активной нужную вкладку nav-tabs в зависимости от текущего контроллера.
Пример реализации без виджета
<?php
// Делаем активной нужную вкладку
$activeTab = function ($controller) {
return $controller === $this->context->getUniqueId() ? 'active' : '';
}; ?>
<ul class="nav nav-tabs">
<li class="<?=$activeTab('search')?>">
<a href="#search" data-toggle="tab">Поиск</a>
</li>
<li class="<?=$activeTab('catalog')?>">
<a href="#catalog" data-toggle="tab">Каталог</a>
</li>
</ul>
и через виджет
$user = Yii::$app->getUser();
$checkController = function ($controller) {
return $controller === $this->context->getUniqueId();
};
echo Menu::widget([
'items' => [
[
'label' => 'Поиск',
'url' => ['/search/index'],
'active' => $checkController('search')
],
[
'label' => 'Каталог',
'url' => ['/catalog/index'],
// можно также скрыть вкладку при необходимости
'visible' => $user->can('catalog.index'),
'active' => $checkController('catalog')
],
]
]);
Смотрите также как выделить активные пункты меню.
