yii2 php反射,Yii2.0-advanced-3—为yii2添加后台模板adminlte和权限组件yii2-adm
一、yii2-adminlte-asset
adminlte一款基于bootstrap的響應模塊。yii2-adminlte-asset更是一款基于yii2框架進行開發的后臺主題模版。
1、安裝(安裝前先運行composer self-update)
composer require dmstr/yii2-adminlte-asset "2.*"等待幾分鐘完成后,
拷貝 vendor\dmstr\yii2-adminlte-asset\example-views\yiisoft\yii2-app 目錄下面的文件到項目 backend\views, 可直接進行覆蓋替換;
打開訪問后臺主頁和登錄頁:
2、打開 backend\views\layouts\main.php,找到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"
二、yii2-admin權限組件
yii2-admin是一個基于yii2的權限管理組件,使用它可以快速搭建可視化的權限管理功能;
1、首先創建yii2的rbac數據表,數據庫遷移文件在vendor\yiisoft\yii2\rbac 目錄下,
yii migrate --migrationPath=@yii/rbac/migrations/
輸入會會報錯提示我們要添加權限組件配置:
Exception 'yii\base\InvalidConfigException' with message 'You should configure "authManager" component
打開 common\config\main.php 文件,在 components 數組中加入 authManager 組件
//authManager有PhpManager和DbManager兩種方式,
//PhpManager將權限關系保存在文件里,這里使用的是DbManager方式,將權限關系保存在數據庫.
"authManager" => [
"class" => 'yii\rbac\DbManager',
],再次執行遷移就可以了,建立的表含義:
auth_item:用于存儲角色、權限和路由;? auth_item_child:角色-權限的關聯表;? auth_assignment:用戶-角色的關聯表
2、安裝yii2-admin:
composer require mdmsoft/yii2-admin "~2.0" 相關配置:
backend\config\main.php
return [
//......
'modules' => [
'admin' => [
'class' => 'mdm\admin\Module',
],
//......
],
'aliases' => [
'@mdm/admin' => '@vendor/mdmsoft/yii2-admin',
],
'components' => [
//......
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
],
//......
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//這里是允許訪問的action,不受權限控制
//controller/action
]
],
//......
]; 現在,我們訪問后臺任何路由都顯示 403 無權限訪問,為了開發方便,暫時我們先設置所有都可訪問,
'allowActions' => [
//這里是允許訪問的action,不受權限控制
//controller/action
'*'
]
下面可以通過瀏覽器訪問如下地址:
/index.php?r=admin
/index.php?r=admin/route
/index.php?r=admin/permission
/index.php?r=admin/role
/index.php?r=admin/assignment 這就是yii2-admin的權限管理界面了,但是這么訪問太麻煩,我們可以做一個導航管理,讓有權限的路由都顯示在左側菜單;
3、menu菜單實現
首先建立一個menu表,這個表在yii2中已經為我們準備好了,直接數據遷移:
yii migrate/to m140602_111327_create_menu_table.php? --migrationPath=@mdm/admin/migrations
# m140602_111327_create_menu_table.php 是我們要執行的menu數據表,
# 在vendor\mdmsoft\yii2-admin\migrations目錄下,這個每個人可能是不同的,需要自己手動修改 訪問 /admin/menu 可以看到菜單管理界面;然后
打開布局文件left.php,修改相應配置,
use mdm\admin\components\MenuHelper;
use dmstr\widgets\Menu;
?>
=
Menu::widget([
'options' => ['class' => 'sidebar-menu'],
'items' => MenuHelper::getAssignedMenu(Yii::$app->user->id)
]);
?>
這樣就可以通過在界面操作實現左側導航管理;
4、menu菜單使用方法
/admin/menu/index? ? #這里添加導航菜單,之前先訪問 /admin/menu/index將所有路由添加到表中,否則無法設置路由鏈接
例如:添加一個‘’角色管理‘’ 菜單,路由為 “/admin/role”
5、rbac權限使用方法
//路由設置
/admin/route/index? ? ?#訪問將左側所有路由添加到右側,即寫入路由數據,這里的路由是根據php反射機制自動顯示,也可手動增加路由
//權限設置
/admin/permission/index? ? ?#添加一個權限,分配給一個路由,例如:“ 全局權限 ”,右側加入 “ /* ”;
//角色設置
/admin/role/index? ? ?#添加一個角色,分配給該角色一個權限,例如:“ 超級管理員 ”,右側加入上一步設置的 “ 全局權限 ”;
//角色分配
/admin? ? ?#分配給用戶角色,這里會顯示user表中所有用戶,例如:“ admin ”,右側加入上一步設置的角色 “ 超級管理員 ”;
6、完善配置
之前為了使用方便我們將? /backend/config/main.php,allowActions 設置為 *,現在改為正確設置:
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
//這里是允許訪問的action,不受權限控制
//controller/action
'site/*',
]
],未在后臺授權的用戶訪問相關路由都會顯示403;
總結
以上是生活随笔為你收集整理的yii2 php反射,Yii2.0-advanced-3—为yii2添加后台模板adminlte和权限组件yii2-adm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自动化办公——python操
- 下一篇: 动态规划算法php,php算法学习之动态