位置: 编程技术 - 正文

Yii2 rbac权限控制之菜单menu实例教程

编辑:rootadmin

推荐整理分享Yii2 rbac权限控制之菜单menu实例教程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在上篇文章给大家介绍了yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭建和rbac权限控制,如果你还没有实现,请先看上文再回来参考本文,因为本文是在上文的基础上进行完善和补充。

部分小伙们纷纷反映,最后菜单menu怎么控制权限呀,看不懂,搞不定,而且你那貌似没搞完,瞎忽悠!确实没那么全,今天看我们如何实现菜单完美权限化。先罗列下主要讲的内容,不需要的没必要看下去,只为分享给有需要的人。

利用menu表添加菜单

左侧菜单结果adminlte完美呈现

菜单前面自定义icon小图标并呈现

如何控制菜单的显示或者隐藏

页面操作按钮没权限的不做显示

gridview中也只显示有操作权限的按钮

嗯,差不多就这么多,如果你还有其他的有关权限控制菜单的需求,请下方留言,咱们共同切磋交流。

先看图预览下大致效果,不然怎么激起你们好学的心。

首先我们先访问路由页面 /dmin/route/index ,尽可能的把左侧的全部选中,然后移动到右侧,,然后记得给当前用户分配相关的可访问权限哦。

接下来访问菜单列表 /admin/menu/index 点击添加菜单,如果这个时候你没有权限访问了,请你在配置文件的 as access文件内暂时允许当前用户访问任意权限,并在我们添加完权限的时候去掉as access的设置,一定要记得哦,不然权限失效了可别回来找我。

这里我们先填写上图中标红的四个字段

举个例子:我们要添加一级菜单"权限管理"

名称请填写"权限管理",因为是一级菜单,父级名称请留空,路由我们这里选择"/admin/default/index",注意了,如果匹配到任何路由,请访问路由页面把左侧的选中移动到右侧。

映射,其实就是排序高低的问题,比如说我添加了两个菜单,映射值为1的就在上面 值为2的就在1的下面,我们这里填写数字1。

"数据"这一项我们后面再说。

按照刚刚介绍的这种方式添加吧,举一个添加二级菜单"权限控制"的例子

Yii2 rbac权限控制之菜单menu实例教程

只需要把父级名称这里填写我们刚刚添加成功的一级名称"权限管理"即可。其他照旧。不会操作的多看两遍,这里最好把权限管理的几个菜单全部添加完毕,因为接下来我们需要且你可以多练练手嘛。

到此我们已经会添加菜单了。

我们来看下一步,利用我们之前搭建的后台框架进行展现。

是不是很简单,What?我的怎么没有dmstr这玩意,不好意思,已经说的很多遍,需要先看上文再有这个菜单的结合。

ok,刷新页面看看你的菜单,虽然我们还没完全实现我们想要的功能,不过到此你应该能看到你的菜单展现了。

接下来将进入我们的重点以及难点,我们要实现菜单前面的小图标且完成菜单可隐藏控制。

还记得我们一开始创建菜单的时候,唯一没进行填写的选项"数据"吗?为了后续操作方便,我们这里一并把图标和隐藏的选项都填写上。我们以开始截图中的"后台用户管理"这个二级菜单为例进行修改。截图大家先看看我们的菜单目前的状态,

请在其更新页面的“数据”项中务必填写下面的代码,如果你有新的想法,还请先按照我的思路后面再做修改,因为后面我们要进行操作。

是的,这个"数据"项我们填写的是一段json代码,接下来我们对展示菜单的代码也做稍微的整改,为了方便大家看代码,这里的$callback直接写在页面上了,回头大家可以继续封装优化。

是的,你没有看错,代码是有点长,我们来简单分析分析。其实我们这里的$callback方法也只是针对上面我们添加菜单的"数据"项进行的分析。不难看出,我们对icon和visible分别进行了判断,并追加到当前menu中。

到此,我们费了一番波折终于实现菜单加icon和设置菜单的隐藏。如果你有其他的属性需要进行配置,此处仍然可以继续单独配置。

现在,我们还有两个任务仍待完成,要完成接下来的两个任务,为了大家的方便,建议你的项目可以自定义配置gii模版,不支持自定义gii模板的可以参考自定义gii模版 当你发现我们后面需要做的功能,我觉得你会赞叹我们这里的操作。

为了方便操作,我们这里增加一个测试表test,我们先用未做修改的gii模版生成一份model+curd。我们先把test/*的所有权限分配给当前登录的用户,并添加一条数据。打开/test我们可以正常看到下面的截图,注意图中的两个标记。

然后我们打开test/index.php文件,对标记的两个地方进行如下修改

现在我们刷新下页面/test再看看,好像没什么变化嘛。别急,我们现在撤销当前用户的/test/create 权限和/test/update权限,然后你在刷新下页面看看效果,我们截图看看。

也就是说我们没有权限的按钮消失了,当你手动访问/test/create的时候你会发现也会提醒你没有权限。

如果你的gii模板是自定义的,相信你会迅速在其生成的模板中所有的操作上添加权限控制的,是不是很happy

最后,我们的菜单menu关于权限控制的讲解基本也就结束了,长篇大论,仔细回想起来也没多少东西,倒是希望能帮到你一二

thinkphp3.2实现上传图片的控制器方法 本文讲述了thinkphp3.2实现上传图片的控制器方法。分享给大家供大家参考,具体如下:publicfunctionfile(){$baseUrl=str_replace('\','/',dirname($_SERVER['SCRIPT_NAME']));im

Yii2实现ajax上传图片插件用法 本文实例讲述了Yii2实现ajax上传图片插件用法。分享给大家供大家参考,具体如下:这里需要先下载mdmsoft/yii2-upload-file.插件。代码如下:publicfunctionaction

php实现在站点里面添加邮件发送的功能 下面夏日博客来讲下如何在站点里面添加一个邮件发送的功能。首先需要下载一个smtp的php邮件发送类,代码如下:phpclasssmtp{/*PublicVariables*/public$smtp_port;pu

标签: Yii2 rbac权限控制之菜单menu实例教程

本文链接地址:https://www.jiuchutong.com/biancheng/293504.html 转载请保留说明!

上一篇:基于PHP实现通过照片获取ip地址(基于php的系统)

下一篇:thinkphp3.2实现上传图片的控制器方法(thinkphp yii)

  • 采购材料的进项税
  • 资源税和增值税销售额不一致
  • 实收资本的账务处理是怎样的
  • 企业转出多交增值税吗
  • 公司的个人所得税是多少
  • 普通发票可以换增值税发票吗
  • 收到补助款怎么入账
  • 购买旧固定资产的增值税进项税
  • 企业所得税公益性捐赠扣除标准
  • 材料成本差异月初贷方余额表示什么
  • 汇兑损益在外币业务核算中有什么重要意义
  • 保险柜库存现金留存不能超过多少
  • 增值税发票是需要先对公转账吗
  • 实收资本印花税减免税优惠政策2019
  • 运费发票是含税还是不含税
  • 自用房屋的房产税怎么缴纳
  • 培训费是否能全额退款
  • 货币资金闲置对企业偿债能力的影响
  • 金蝶哪个版本最好
  • 季度所得税报表怎么填
  • 电商公司购买拍照违法吗
  • 银行财务软件用什么
  • 贴息债券计算公式
  • multiple editions是什么版本
  • 计提的社保费如何做账
  • pow是什么意思中文翻译
  • daio.dll 病毒
  • 房地产企业前期物业费可否税前扣除
  • uview2.0封装http请求实战以及常见请求传参实录
  • 如何使用vim创建文件
  • 公司为实习生买保险列支什么科目?
  • Linux系统怎么配置IP
  • 前端数据统计图
  • 一列火车穿过一条隧道,已知火车长450米,隧道长750米
  • php中使用什么关键字定义常量
  • vue如何预加载图片
  • 两只小北极熊
  • 前端axios是什么
  • 白酒赠送消费税计算
  • 前端yck
  • 新准则下公允价值变动损益纳税调整
  • python功能强大而深受欢迎的原因
  • 政府奖励怎么做会计分录
  • 所得税申报表营业成本包括管理费用吗
  • python repeat函数
  • sql server附加数据库出错
  • sql server2012新建一个数据表
  • 小规模增值税申报未开票收入怎么填
  • 出口货物关税完税价格包括哪些
  • 发放福利视同销售进项税要转出吗?
  • 工会经费包括年终奖吗
  • 投资性房地产与持有待售资产的区别
  • 进项已抵扣,退货发票怎么处理
  • 分类法与品种法相比,最大的区别是
  • 免息分期付款怎么办理
  • 旅游饮食服务企业会计核算的特点
  • sqlserver如何更改数据类型
  • win8.1系统升级win10
  • 如何解决win10系统用户名有中文
  • winxp系统怎么设置默认账户登入
  • linux常见压缩工具
  • 因以下文件的损坏或者丢失,windows无法启动hal.dll
  • win10升级20h
  • kernel32在哪个文件夹
  • player文件怎么打开
  • linux与windows
  • Cocos2dx -lua QuickXDev拓展
  • android怎么学
  • oracle中提取日期时间的特定部分
  • enum枚举类型
  • js传参是什么意思
  • js实现拖拽元素改编顺序
  • jqgrid loadcomplete
  • python的入门教程
  • 山西国家税务网官网
  • 税控机怎么开发票
  • 济南高新发展公告
  • 公司欠税无力偿还怎么办
  • 如何查询有没有交医保费用
  • 纳税服务理念2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设