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相关推荐
- Vue2.0 + ElementUI 手写权限管理系统后台模板(一)——简述
简介 这个权限管理就是为了方便,跟系统安全真的不沾边,只是根据后台返回的角色信息来生成他可以看见的菜单和按钮,显示菜单的方法是根据权限删除掉路由表里没有权限的路由,然后再动态添加,原本包含没有访问权限 ...
- Vue2.0 + ElementUI 手写权限管理系统后台模板(三)——页面搭建
框架布局 本章只介绍基础布局,和一些主要的js,页面上基本上都是些交互事件,项目代码上都有注释,不懂的地方debug跑一变就知道了,只是这些事件基本上没有独立存在的,相互之间都有关联 框架风格 新建页 ...
- Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理
Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理 一.安装后台框架ui 二.安装权限管理扩展 三.实现权限菜单管理 一.安装后台框架ui composer require dmstr/yii ...
- yii2 后台权限验证获取用户身份_Yii2搭建后台并实现rbac权限控制完整实例教程...
1.安装yii2 未安装的请参考yii2史上最简单式安装教程,没有之一 已安装的请继续看下一步操作 2.配置数据库 2.1 配置数据库 修改common/config/main-local.php 实 ...
- yii2搭建完美后台并实现rbac权限控制实例教程
作者:白狼 出处:http://www.manks.top/yii2_fra... 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权 ...
- Yii2搭建后台并实现rbac权限控制完整实例教程
分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 photoshop教程 ...
- 《PowerShell 3.0 Advanced Admin handbook》已于今日上市
工作之余与埃及MVP Sherif Talaat合著的全英文书籍<PowerShell 3.0 Advanced Admin handbook>于今日由Packt Publishing正式 ...
- Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能 之前一直用的是自 ...
- 心怡哇1.0.版本一个女生的网站xinyiwa模板 ,WordPress主题1.0女性资讯模板主题
介绍 心怡哇1.0.版本一个女生的网站xinyiwa模板,WordPress<心怡哇>女性资讯模板主题,本模板专注女性资讯,界面简单大方,栏目分明. 目前是1.1基础版(原1.0版作废). ...
最新文章
- 阿里发布2019十大科技趋势:AI依然最热
- android点滴(25)之 original-package
- Struts2.3.4.1+Spring3.2.3+Hibernate4.1.9整合
- 详解DPoS共识算法
- OpenCV iOS-图像处理
- 详解分布式协调服务 ZooKeeper
- python pp模块_Python模块--Pexpect
- Win7系统打开摄像头提示“请检查装置连接状况”怎么办
- python程序框架_Python 程序构架浅析
- Fragment的知识总结
- R 保存包含中文的 eps 图片--showtext
- 目录_视觉SLAM十四讲_0
- 【优化覆盖】基于matlab模因算法求解集群无线传感器网络中节能覆盖控制优化问题【含Matlab源码 1563期】
- uCharts 图表
- DEV GridView同时多列排序,附上排序列是实体解决右击没有排序箭头的问题
- 软件系统上线前演示剧本
- Mac电脑无法从Photoshop 2020作为插件访问DeNoise AI的解决办法
- docker卸载mysql_Docker卸载镜像
- thread ‘<unnamed>‘ panicked at ‘assertion failed: `(left == right)`
- android 为什么不调用onDestroy方法关闭activity
热门文章
- MySQL两千万数据优化迁移
- Java图片处理(二)图片加水印
- 额,你在main.xml中加了一个id以后,要右键点save,才会将这个id加入到R中,否则是没有的。。。R里的东西是程序自动生成的~~~...
- 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?
- Java的静态域以及封装性相关
- RoHS、无铅制程、无卤 的基本介绍
- 李倩星r语言实战_《基于R的统计分析与数据挖掘》教学大纲
- 怎么理解python语言_Python语言入门1-理解Python语言
- mysql类型说明_MYSQL 数据类型说明
- acl在内核里的位置_Linux 进程在内核眼中是什么样子的?