Yii2.0-advanced-3—为yii2添加后台模板adminlte和权限组件yii2-admin

小编 2026-07-07 阅读:147 评论:0
一、yii2-adminlte-asset adminlte一款基于bootstrap的响应模块。yii2-adminlte-asset更是一款基于yii2框架进行开发的后台主题模版。 1、安装(安装前...

一、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,修改相应配置,

<?php

use mdm\\admin\\components\\MenuHelper;
use dmstr\\widgets\\Menu;
?>

<aside class=\"main-sidebar\">
    <section class=\"sidebar\">
        <?=
            Menu::widget([
                \'options\' => [\'class\' => \'sidebar-menu\'],
                \'items\' => MenuHelper::getAssignedMenu(Yii::$app->user->id)
            ]);
        ?>
    </section>
</aside>
这样就可以通过在界面操作实现左侧导航管理;
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;

--------------------- 
作者:一夜长风 
来源:CSDN 
原文:https://blog.csdn.net/wlzx120/article/details/53423032 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表