yii数据库测评(Yii2.0框架behaviors方法使用实例分析)
类别:编程学习 浏览量:1959
时间:2021-10-15 00:47:55 yii数据库测评
Yii2.0框架behaviors方法使用实例分析本文实例讲述了Yii2.0框架behaviors方法使用。分享给大家供大家参考,具体如下:
初学Yii2.0 学习路径:http://www.yii-china.com/
经过各种学习,积累知识点;
(1)控制器 behaviors 过滤数据需要引入如下文件
|
use yii\filters\AccessControl; use yii\filters\VerbFilter; |
首先:什么是过滤器?过滤器就是对不同用户角色的控制;
如(游客->最普通的平民,用户->已经注册的用户,管理员->拥有一切权限)
然而 Yii2自带的权限控制默认只支持两个角色:
- guest(游客,没有登录的,用 ? 表示)
- authenticated (登录了的,用 @ 表示)
在这里我们需要实现的是对这两种不同的角色指定不同的访问权限,就是为他们分配不同的可以访问的控制器或者方法。
目前我们如果直接点击导航栏的Status,我们还是可以在没有登录的情况之下进行发表状态(status),
所以我们需要改一下我们的代码和逻辑,Yii2在这方面的控制做得非常好,
其实实现这个我们只需要修改一下StatusController.php里面的behaviors()方法而已,
在这里面加入一段access设置:
控制器中的代码(1)
|
public function behaviors(){ return [ 'access' => [ 'class' => AccessControl::className(), 'only' => [ 'index' , 'create' , 'update' ], 'rules' => [ // 允许认证用户 [ 'allow' => true, 'roles' => [ '@' ], ], // 默认禁止其他用户 ], ], 'verbs' => [ 'class' => VerbFilter:: className(), 'actions' => [ 'index' => [ 'get' ], //只允许get方式访问 'create' => [ 'post' ], //只允许用post方式访问 'update' => [ 'post' ] ], ], ]; } |
加上access这一段之后,再次点击Status,Yii2就会将未登录的我重定向到登录页面。
重定向的方法如下:
|
'components' => [ 'user' => [ 'identityClass' => 'backend\system\core\UserIdentity' , 'enableAutoLogin' => true, 'loginUrl' => [ 'login/login' ] //此处设置默认登录页,如果未登录就会跳转到该页 ], ... |
用户一旦登录进来之后,我们就可以通过下面这行代码来获取用户的id了:
|
$userid =Yii:: $app ->user->getId(); //获取用户id |
控制器中的案例(2)
|
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'only' => [ 'logout' , 'signup' , 'change-password' ], 'rules' => [ [ 'actions' => [ 'signup' ], //允许游客注册 'allow' => true, 'roles' => [ '?' ], ], [ 'actions' => [ 'logout' , 'change-password' ], 'allow' => true, //允许用户登出、修改密码 'roles' => [ '@' ], ], ], ], 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [ 'logout' => [ 'post' ], //登出只允许提交方式为post,否则报错 ], ], ]; } |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/lccjob/p/5057369.html
您可能感兴趣
- pythonyield使用场景(Yii框架核心组件类实例详解)
- yii2对比springboot(Yii框架函数简单用法分析)
- yii2支持的数据库(Yii框架日志操作图文与实例详解)
- yii2对比springboot(Yii框架响应组件用法实例分析)
- php使用yield处理并发(Yii框架中使用PHPExcel的方法分析)
- yii2支持php7.2吗(Yii框架通过请求组件处理get,post请求的方法分析)
- requests使用自定义cookie(Yii框架中用response保存cookie,用request读取cookie的原理解析)
- python如何使用yield(YII2.0框架行为Behavior深入详解)
- yii数据库测评(Yii2.0框架behaviors方法使用实例分析)
- thinkphp导入excel(Yii框架使用PHPExcel导出Excel文件的方法分析改进版)
- python yield 使用浅析(yii框架使用分页的方法分析)
- yii2 在控制器中验证请求参数的使用方法(yii2 在控制器中验证请求参数的使用方法)
- yii框架使用教程(Yii框架连表查询操作示例)
- webapp前端能用yii2开发吗(Yii Framework框架使用PHPExcel组件的方法示例)
- yii框架使用教程(Yii框架分页技术实例分析)
- yii2支持的数据库(Yii框架常见缓存应用实例小结)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
- 爱情可以当饭吃吗(爱情能当饭吃吗)
- Top 3 JSHS《运动与健康科学 英文 》跻身SCI体育学期刊世界前三(Top3JSHS运动与健康科学)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
热门推荐
- innodb和myisam(Mysql InnoDB和MyISAM区别原理解析)
- 织梦怎么添加评论(在织梦中添加腾讯微博最新动态信息的方法)
- python接口管理系统(基于Python实现用户管理系统)
- dedecms安装与配置详解(LuManager服务器管理软件安装DEDECMS软件图文教程)
- sqlserver日志目录是否过大(SQL Server利用sp_spaceused如何查看表记录存在不准确的情况)
- mysql事务特性的主要作用(详解MySQL中事务的持久性实现原理)
- php中trim函数(PHP中ltrim函数的用法与实例讲解)
- python3爬虫代码(Python3爬楼梯算法示例)
- 树莓派vnc设置失败(树莓派安装宝塔面板后VNC无法登陆的问题说明)
- 如何编写docker-compose(使用Docker Compose搭建 Confluence的教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9