文档章节

yii2搭建完美后台并实现rbac权限控制

白狼栈
 白狼栈
发布于 2016/03/30 23:28
字数 1063
阅读 893
收藏 10

作者:白狼 

出处:http://www.manks.top/article/yii2_frame_rbac_template 

本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

1、安装yii2

如果你是windows平台,请看小马哥的安装教程

http://www.yiichina.com/tutorial/324

以下安装不分平台

1.1 这里就不准备用composer进行安装了,我们去官网下载一份高级模板到本地

我们这里放到/var/www目录下,文件名就是下载解压下来的文件名advanced,不做改动

接下来我们cd advanced开始设置应用配置

1.2 执行php init 一步一步选择操作就行了

1.3 我们本地配置一下web可访问形式检验一下安装情况

我这边本地localhost指向/var/www

因此采用 http://localhost/advanced/frontend/web/ 进行访问前台,这里是yii2默认的模板

 

上面罗哩罗嗦一大堆没啥好玩的,接下来我们开始朝着本篇文章的目标进行展开,重点来了。

2、配置数据库

2.1 配置数据库

修改common/config/main-local.php 实际项目中本地的数据库往往跟线上数据库不一致,我们这里配置到main-local.php就可以了,产品上线后,我们可以使用git获取svn忽略掉main-local.php,线上直接部署。

我们这里使用的mysql数据库,配置如下

2.2 创建user数据表,我们后面要实现后台登陆

说明:user表和menu表的创建可以参考我们后面下载的组件yii2-admin里面的sql,具体目录位于

vendor\mdmsoft\yii2-admin\migrations\schema-mysql.sql

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  `username` varchar(255) NOT NULL COMMENT '用户名',
  `auth_key` varchar(32) NOT NULL COMMENT '自动登录key',
  `password_hash` varchar(255) NOT NULL COMMENT '加密密码',
  `password_reset_token` varchar(255) DEFAULT NULL COMMENT '重置密码token',
  `email` varchar(255) NOT NULL COMMENT '邮箱',
  `role` smallint(6) NOT NULL DEFAULT '10' COMMENT '角色等级',
  `status` smallint(6) NOT NULL DEFAULT '10' COMMENT '状态',
  `created_at` int(11) NOT NULL COMMENT '创建时间',
  `updated_at` int(11) NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='用户表';

2.3 访问frontend站点,先注册个用户

注册成功后,右上角会显示登陆的状态,我们后面会用到这个注册的用户

接下来我们要开始配置后台的模板了。

3、利用AdminLTE渲染后台模板

后台的模板我们采用利用 AdminLTE(Backend theme for Yii2 Framework)

插播一曲:AdminLTE是一个完全响应管理模板。基于Bootstrap3框架,易定制模板。适合多种屏幕分辨率,从小型移动设备到大型台式机。内置了多个页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。

3.1 安装AdminLTE 

https://github.com/dmstr/yii2-adminlte-asset

打开上面的链接,按照操作步骤进行安装

这里我简述下自己的安装步骤,cd advanced后,

因为是mac,这里直接composer进行安装就行了
composer require dmstr/yii2-adminlte-asset "2.*"

安装成功后,vendor目录下会多几个文件夹,如下

3.2 yii2配置整合AdminLTE,搭建帅气上档次的后台

下面我们配置下backend/config/main.php先预览下效果,小心脏捉急的巴不得赶紧尝尝战果

'components' => [
    'view' => [
         'theme' => [
             'pathMap' => [
                '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
             ],
         ],
    ],
],

nice,页面瞬间好看多了。

问题来了,我们是在components里面单独配置的theme,这样以后要修改布局文件什么的是很不方便滴,下面我们把不局文件拷贝下来覆盖掉yii自带的layout.

把vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app目录下的layouts和site拷贝 

覆盖掉backend/views/目录下的lauouts和site对应的文件

覆盖后记得屏蔽掉 components下面view的配置项

到此,后台模板的搭建告一段落,si不si很happy

4、下面我们用yii的rbac实现后台的权限控制

继续阅读

 

 

本文转载自:http://www.manks.top/article/yii2_frame_rbac_template

白狼栈
粉丝 19
博文 81
码字总数 30876
作品 0
杭州
私信 提问
加载中

评论(2)

白狼栈
白狼栈 博主

引用来自“-煮面”的评论

楼主,我的配置不加authManager会报错。Call to a member function getPermissions() on null
4.4操作步骤上添加了 authManager配置项,加上去就没有问题了。
少年狼yo
少年狼yo
楼主,我的配置不加authManager会报错。Call to a member function getPermissions() on null
yii2 rbac权限控制之菜单menu详细教程

作者:白狼 出处:http://www.manks.top/yii2rbacmenu.html本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 ...

白狼栈
2016/04/28
358
0
yii2 rbac权限控制详细操作步骤

作者:白狼 出处:http://www.manks.top/article/yii2rbacdescription本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任...

白狼栈
2016/04/29
370
0
yii2权限控制rbac之rule详细讲解

作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。...

白狼栈
2016/06/29
72
0
yii2使用多个数据库的案例

作者:白狼 出处:http://www.manks.top/article/yii2%E5%88%86%E5%BA%93%E5%88%86%E8%A1%A8_config 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原...

白狼栈
2016/04/12
385
0
求助:关于yii中 rbac 问题

1、应用了yii的rbac的,还需要配置控制器中的accessRules() 方法么? 我看了一个教程,里面既用rbac,又用accessRules(),感觉晕晕了。 2、有没有现成的rbac模块?求名字求链接。 我看的教程...

燧人氏
2013/04/27
490
0

没有更多内容

加载失败,请刷新页面

加载更多

JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
11分钟前
17
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
20分钟前
4
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
23分钟前
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
29分钟前
4
0
Apache Kudu 不能删除不存在的数据

使用Apache Kudu客户端,对KafkaConnect Sink 进行扩展。 使用的Apache Kudu 的Java 客户端。突然有天发现作业无法提交,一直报错。 后来才发现这是Kudu自身的一种校验机制。为了忽略这种校验...

吐槽的达达仔
39分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部