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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值