yii2-搭建實現RBAC權限控制:yii2-adminlte-asset / 菜單欄(拓展篇)

(一)安裝擴展組件:yii2-adminlte-asset

           描述:我們搭好的項目是沒辦法直接支持左側菜單欄的樣式的。需要我們去找樣式或者直接用組件來安裝,這裏我們選擇了yii2-adminlte-asset

           安裝流程:

           ①  到項目根目錄,命令行執行:composer require dmstr/yii2-adminlte-asset "2.*" 即可。

           ②  待安裝完畢,將 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目錄下面的文件到項目 backend\views

           ③  下面上對比圖(左圖是未安裝前,右圖是安裝後)

                            

        ④  通過修改body的class可以來調整主題

//主要是這幾種樣式,挑這看自己喜歡的就行
"skin-blue","skin-black","skin-red","skin-yellow","skin-purple","skin-green","skin-blue-light","skin-black-light","skin-red-light","skin-yellow-light","skin-purple-light","skin-green-light"

 

(二)結合前面所學的權限控制,把左側菜單欄真正實現由角色來區分顯示(替換掉Menu的靜態顯示)

<?php
        $callback = function($menu){
            $data = json_decode($menu['data'], true);
            $items = $menu['children'];
            $return = [
                'label' => $menu['name'],
                'url' => [$menu['route']],
            ];
            //處理我們的配置
            if ($data) {
                //visible
                isset($data['visible']) && $return['visible'] = $data['visible'];
                //icon
                isset($data['icon']) && $data['icon'] && $return['icon'] = $data['icon'];
                //other attribute e.g. class...
                $return['options'] = $data;
            }
            //沒配置圖標的顯示默認圖標
            (!isset($return['icon']) || !$return['icon']) && $return['icon'] = 'fa fa-circle-o';
            $items && $return['items'] = $items;
            return $return;
        };

        echo dmstr\widgets\Menu::widget( [
            'options' => ['class' => 'sidebar-menu tree', 'data-widget'=> 'tree'],
            'items' => \mdm\admin\components\MenuHelper::getAssignedMenu(Yii::$app->user->id, null, $callback),
        ] );
?>

           整個權限配置的大致邏輯理下: 先配置路由-> 再添加角色/配置角色權限->賦予用戶某個角色(菜單那邊也要填好路由,這樣不同的用戶進來顯示的菜單欄就自然而然不一樣了)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章