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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt实现延时sleep函数功能

/*函数名&#xff1a;sleep()参 数&#xff1a; msec - 单位为毫秒描 述&#xff1a; 延时功能 */bool Test::sleep(unsigned int msec) {QTime dieTime QTime::currentTime().addMSecs(msec);while (QTime::currentTime() < dieTime){QCoreApplication::processEvents…

矩阵位移法matlab编程,矩阵位移法_MATLAB_GUI.doc

Matrix_Displacement_Method——by MATLAB GUIPAGE58 / NUMPAGES64yanfeng39zju.edu.cn《结构力学》课程设计之矩阵位移法——MATLAB GUI实现姓名&#xff1a;郑延丰学号&#xff1a;3061211039班级&#xff1a;土木0602指导老师&#xff1a;陈水福日期&#xff1a;2009年3月30…

centos 6.2 vnc

安装vncserver服务端和客户端端 yum install tigervnc tigervnc-server -y 安装fontforge&#xff08;如果不安装fontforge&#xff0c;vncviewer客户端连接上来时&#xff0c;文字会变成方块。&#xff09; yum install fontforge -y 安装桌面 yum groupinstall Desktop -y …

arcgis建立拓扑分析(检验矢量图)

目的&#xff1a;矢量图画好后&#xff0c;检查是否有伪节点&#xff0c;悬挂节点等&#xff0c;线要素和面要素都可以检查。伪节点&#xff0c;两条线应该相交但是画的没相交&#xff1b;悬挂节点&#xff0c;两条线看似相交了但是没有节点&#xff0c;因此路径不同&#xff0…

python列表有固定大小吗,使用python自己写了一个固定长度的list

注明&#xff1a;有时候需要一个固定长度的list&#xff0c;然后我找的时候虽然网上有一些内容&#xff0c;但都不是我想要的&#xff0c;于是我就自己简单的写了一个。以作自己不时之需&#xff0c;同时分享出来&#xff0c;大家一起讨论&#xff0c;不喜勿喷&#xff0c;谢谢…

POJ 1042 Gone Fishing【枚举+贪心】

题意&#xff1a; 有 n 个池塘&#xff0c;只能从第一个池塘开始走&#xff0c;可以在每个池塘中钓鱼&#xff0c;而且知道了每个池塘每五分钟钓鱼的数量都会下降一定额数值&#xff0c;且从池塘到下一个池塘之间都有一定的距离&#xff0c;知道了每个池塘走到下一个池塘的时间…

制作镜像包时遇到的模块加载错误的问题

最近遇到一个问题&#xff0c;定制的一个镜像包&#xff0c;在启动后&#xff0c;发现有些内核模块加载是错误的&#xff0c;有些是正确的。使用modinfo去查询&#xff0c;可以看到加载的为内核版本中的模块&#xff08;非自己定制的模块&#xff09;&#xff0c;而有些自己新增…

oracle11g导出dmp文件 少表,Oracle11g导出dmp并导入Oracle10g的操作记录

Oracle11g导出dmp并导入Oracle10g的操作记录。操作环境说明&#xff1a;Oracle11g环境&#xff1a;Windows7&#xff0c;Oracle Database 11g Enterprise Edition Release 11.2.0.1.0&#xff0c;ZHS16GBK。Oracle10g环境&#xff1a;中标麒麟&#xff0c;Oracle Database 10g …

GitLab常用命令

进入本地仓库访问位置之后执行命令1) 远程仓库相关命令 检出仓库&#xff1a;$ git clone git://github.com/jquery/jquery.git 查看远程仓库&#xff1a;$ git remote -v 添加远程仓库&#xff1a;$ git remote add [name] [url] 删除远程仓库&#xff1a;$ git remote rm [na…

完整国内城市js级联选择

js代码: View Code var china [//直辖市[北京市],[上海市],[天津市],[重庆市],//华北地区[河北省,石家庄,唐山,秦皇岛,邯郸,邢台,保定,张家口,承德,沧州,廊坊,衡水],[山西省,太原,大同,阳泉,长治,晋城,朔州,晋中,运城,忻州,临汾,吕梁],[内蒙古自治区,呼和浩特,包头,乌海,赤峰…

oracle服务器找不到怎么解决,简析Oracle数据库常见问题及解决方案

Oracle数据库在使用的过程中常常会遇到这样或那样的问题&#xff0c;而这些问题常常又使我们感到很困惑&#xff0c;本文我们总结了Oracle数据库在使用过程中的一些问题&#xff0c;并给出了解决方法&#xff0c;下面我们就开始分析一下这些问题。一、oracle监听启动后&#xf…

Introspector内省和反射的区别.

Introspector 是一个专门处理bean的工具类.用来获取Bean体系里的 propertiesDescriptor,methodDescriptor. 要理解这个,就要理解下面几个议题. *bean是啥?普通的class 可能有 computerAges(){ }等方法.Bean是 一个field ,有 get 或者set. 除了这些别无其他.bean是class的一种例…

Akka2使用探索2(Con?guration)

akka2使用Typesafe Config库&#xff0c;可以使用ConfigFactory.load()加载配置文件&#xff0c;默认加载classpath下的application.conf, application.json and application.properties文件。ActorSystem将会把这些配置和reference.conf合并&#xff08;merge&#xff09;起来…

oracle查看用户路径,oracle 查看用户的表空间,表空间路径,角色,权限

查看当前用户的缺省表空间select username,default_tablespace from user_users;--XUSER XUSER_DATA查询表空间 含临时表空间select tablespace_name from dba_tablespaces;--XUSER_TEMP--XUSER_DATA查询表空间的路径select name from v$datafile--/u01/app/oracle/oradata/orc…

302重定向问题

在把原有的项目迭代以后出现了访问原有域名&#xff1a; abc.dex 不能访问的情况&#xff08;注意&#xff1a;这种情况时而能访问&#xff0c;时而不能访问&#xff09; 必须访问&#xff1a;abc.dex /login.index才能登陆 下面是抓取网络状态的截图&#xff1a; SLB在做…

项目中遇到的ORA error 及解决办法 ---ora-07445

目的 本文档主要介绍ora-07445错误相关内容&#xff0c;并给出了对这个错误的进一步诊断建议&#xff0c;文档主要基于unix系统编写&#xff0c;但原理通用。 文档适用范围 主要为DBA处理系统的ora-07445错误时使用。 0ra-07445错误的定义 当oracle服务器进程从操作系统收到一个…

oracle 不等于某类,Oracle如何查询不等于某数值

前言今天在使用Oracle查询“不等于”的时候&#xff0c;发现得到的数据与期望中的不一样&#xff0c;进一步查找资料才有发现。1、Oracle的不等于在Oracle中&#xff0c;"<>"、"!"、"^"都是表示“不等于”&#xff0c;都可以拿来使用。但是…

ASP.NET学习笔记

1.Asp.Net中几种相似的标记符号: < %...%>< %#... %>< % %>< % %>解释及用法 < %#... %>: 是在绑定控件DataBind()要领 执行时被执行&#xff0c;用于数据绑定 如: < %# Container.DataItem("tit") %> < % %>: 在程序执行…

2017级面向对象程序设计——团队作业1

这是一股来自青青草原的神秘力量 团队信息 团队名称 青青草原战队队伍成员 阮君曦 031702116(队长)史恩泽 031702122蓝飞鹏 031702112张凌昕 031702105林鑫 031702138团队合照人物属性 阮君曦&#xff08;懒羊羊&#xff09; 风格&#xff1a; 一旦进入学习状态便一发不可收拾。…

oracle使用sql文件创建表,使用SQL*Loader创建外部表之一

使用SQL*Loader创建外部表&#xff1a;---创建目录对象并授权给Scott用户&#xff1a;SQL> create or replace directory loader_home as /home/oracle/dirhome;Directory created.--授权&#xff1a;SQL> grant read,write on directory loader_home to scott;Grant suc…