(一)安裝擴展組件: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),
] );
?>
整個權限配置的大致邏輯理下: 先配置路由-> 再添加角色/配置角色權限->賦予用戶某個角色(菜單那邊也要填好路由,這樣不同的用戶進來顯示的菜單欄就自然而然不一樣了)