Как сделать активным элемент SideNav в другом стиле? - PullRequest
0 голосов
/ 05 июля 2019

Я хочу, чтобы элементы в моем SideNav by Kartik в приложении yii2 меняли цвет, когда он активен (был нажат и открыт).

Извините, я довольно новичок в PHP и Yii и вопросможет показаться очевидным, но я действительно складываю здесь.

Я уже пытался использовать «активную» опцию, которая описана в документации, но она не работает.Это не показывает никакой ошибки, но не работает.У меня есть файл adminMenu.php , где написано SideNav.и файл просмотра panel.php , в котором я его показываю.

Также я попытался добавить echo

$this->render('adminMenu'['currentPage'=>'admin/personal']);

, но он показывает ошибку, и поэтому я комментирую его длясейчас.

adminMenu.php:

class adminMenu extends Widget{
    public function init(){
        $curentpage = Yii::$app->controller->id ;
        parent::init();
        ob_start();


    echo SideNav::widget([
        'type' => SideNav::TYPE_PRIMARY,
        'headingOptions' => ['class'=>'head-style'],
        'items' => [
            ['label' => 'Personal', 
             'url' => ['/admin/personal'], 
             'active' => ($curentpage == 'admin/personal')],

            ['label' => 'Clients', 
             'url' => ['/admin/clients'], 
             'active' => ($curentpage == 'admin/clients')],

           ...
    ]);

panel.php:

if(\Yii::$app->user->can('Admin')){
    echo adminMenu::widget();
    //echo $this->render('adminMenu'['currentPage'=>'admin/personal']);
}

1 Ответ

0 голосов
/ 05 июля 2019

я думаю, что ваша ошибка в этой строке

$ curentpage = Yii :: $ app-> controller-> id;

Yii :: $ app-> controller-> id возвращает только имя вашего контроллера, в этом казино будет «admin», тогда вы сравните «admin» равно «контроллер / действие» («admin / personal») это никогда не будет равных.

Чтобы сделать это, вы можете выполнить конкатат фактического контроллера и фактическое действие следующим образом:

$ curentpage = Yii :: $ app-> controller-> id. '/'. Yii :: $ app-> controller-> action-> id;

и сравнение будет успешным, а "активный" класс добавит вам боковую панель

...