专栏首页程序媛生涯TP5.0怎么实现权限控制

TP5.0怎么实现权限控制

角色的权限控制在后端开发中,经常会遇到。那么,TP5.0是怎么实现权限控制的呢?步骤如下:

(1)在用户数据表中添加一个【role_id】的角色字段,字段中用数字表示各个角色,比如,1代表超级管理员,2代表普通管理员,3代表其他用户。

(2)在验证用户登录信息时,把该用户的数据信息通过session存起来,示例如下:

Session::set('role_id', $user -> role_id);

(3)在需要权限才能查看或操作的地方加个判断,判断是否为某种角色才能查看,比如在前端页面中,只有超级管理员才能删除,则示例代码如下:

{eq name="$Think.session.role_id" value="1"}
  <a title="删除" href="javascript:;">
    <i class="Hui-iconfont">&#xe6e2;</i>
  </a>
{/eq}

(4)如果是在控制器中实现权限控制,则需要通过获取session来实现,比如有些数据只有超级管理员才能看的,则代码如下所示:

$role_id= Session::get('role_id');
if ($role_id == 1) {
    $list = UserModel::all(); 
} else {
    $list = UserModel::all(['role_id'=>$role_id]);
}

需要注意的地方是:使用【UserModel】类来获取用户数据,一定要创建一个【User.php】模型,否则会报错。

本文分享自微信公众号 - 程序媛生涯(bcffl1024),作者:叶匠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TP5.0怎么实现一对一连表查询

    什么是一对一连表查询呢?比如说角色表和用户表,一个用户只有一个角色,这就叫做一对一,当要查询用户记录时,就要连表查询用户的角色。

    邂逅千寻
  • TP5.0怎么实现模型CURD的操作

    什么是CURD呢?CURD是指创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)数据表记录的操作。简单的模型CURD一般...

    邂逅千寻
  • boostrap4浅谈之js插件(一)

    插件是实现某个功能的代码块,boostrap4的js插件也不例外。boostrap4的插件包括下拉菜单,轮播,导航等,具体示例如下:

    邂逅千寻
  • day101-支付接口&支付数据结构

    少年包青菜
  • 量化笔面试概率题*2

    一不小心鸽了快两周,最近暑期面试,没啥灵感写推文。现在基本上是暑期投递的尾巴了,今天总结下笔面试多次碰到两类概率题,供大家参考。我投的基本都是量化岗,到现在3/...

    量化小白
  • 乌镇智库:2017全球人工智能发展报告

    作者:乌镇智库 人工智能,俨然成为各国、各科技企业竞争的下一个战场。《乌镇指数:全球人工智能发展报告(2017)》基于海量数据,描绘出人工智能全球发展的最新趋...

    钱塘数据
  • SpringBoot 系列教程 Mybatis+注解整合篇

    上一篇博文介绍了 SpringBoot 整合 mybatis 的过程,但是 xml 的方式,总感觉让人有点蛋疼;本文将介绍一种 noxml 的使用姿势,纯用注解...

    一灰灰blog
  • DOM概述 选取文档元素

    有些html标签会有name元素,区别于id,name属性的值不必是唯一的,多个元素可能存在相同的名字。

    mySoul
  • SQLAlchemy外键的使用

    orm可以将数据库存储的数据封装成对象,同时,如果封装的好的话,所有的数据库操作都可以封装到对象中。这样的代码在组织结构上会非常的清晰,并且相对与使用sql语句...

    用户1173509
  • windows2008中添加网站、绑定域名的方法

    这篇文章主要为大家分享下windows2008中添加网站、绑定域名的方法,需要的朋友可以参考下如何添加网站for windows2008(绑定域名)

    习惯说一说

扫码关注云+社区

领取腾讯云代金券