Стандартный виджет меню yii/widgets/Menu формирует меню в виде списка ul li. В этом случае он умеет определять активный пункт меню и добавляет к нему класс .active, но как только я захотел вместо списка ul li ваыводить меню в виде ссылок div a, то класс активного пункта слетает и вёрстка нарушается. Решаем вопрос.

Нам нужно добавить класс active для ссылки пункта меню. Для этого создадим свой виджет MenuActive в папке components.
namespace app\components; use yii\widgets\Menu; use yii\helpers\ArrayHelper; use yii\helpers\Url; use yii\helpers\Html; class MenuActive extends Menu { public $linkTemplate = '<a {activeclass}="" href="{url}">{label}</a>'; protected function renderItem($item) { if (isset($item['url'])) { $template = ArrayHelper::getValue($item, 'template', $this->linkTemplate); return strtr($template, [ '{activeClass}'=> ($item['active']==1)? 'class="list-group-item active"':'class="list-group-item"', '{url}' => Html::encode(Url::to($item['url'])), '{label}' => $item['label'], ]); } else { $template = ArrayHelper::getValue($item, 'template', $this->labelTemplate); return strtr($template, [ '{label}' => $item['label'], ]); } } }
И теперь подключаем его вместо обычного виджета Menu
use app\components\MenuActive; ... <!--?= -->MenuActive::widget([ ...
1 декабря 2022, Программирование, веб-кодинг
16 января 2023

Yii2-user сменить текущего пользователя или переход на другого пользователя (SwitchIdentity)
Impersonate User / Become another user
12 декабря 2022

Yii2: uclead MultipleInput + kartik DepDrop
Настраиваем множественные поля с выпадающим списком