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
您可能感兴趣
- yii2支持的数据库(Yii框架日志操作图文与实例详解)
- pythonyield使用场景(Yii框架核心组件类实例详解)
- yield方法可以使一个线程停止运行(Yii2.0框架模型添加/修改/删除数据操作示例)
- yii框架使用教程(Yii框架操作cookie与session的方法实例详解)
- php使用yield处理并发(Yii2.0框架模型多表关联查询示例)
- yii2对比springboot(yii2.0框架使用 beforeAction 防非法登陆的方法分析)
- yield函数详解(Yii框架的redis命令使用方法简单示例)
- python如何使用yield(YII2.0框架行为Behavior深入详解)
- requests使用自定义cookie(Yii框架中用response保存cookie,用request读取cookie的原理解析)
- python yield 使用浅析(yii框架使用分页的方法分析)
- python处理水印(Yii 使用intervention/image拓展实现图像处理功能)
- apache和yii域名配置(yii框架数据库关联查询操作示例)
- 如何让yii2高级模板运行起来(Yii框架Session与Cookie使用方法示例)
- yii2对比springboot(Yii框架实现对数据库的CURD操作示例)
- 基于yii2框架的开源系统(Yii框架参数配置文件params用法实例分析)
- yii2支持的数据库(Yii框架常见缓存应用实例小结)
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)
- 每天1万吨牛奶倒进下水道,美国大萧条一幕重现(每天1万吨牛奶倒进下水道)
热门推荐
- 前端pc适配方案(前端兼容性问题总结PC端)
- python柱状图第四节(python使用Plotly绘图工具绘制柱状图)
- sqlserver基础查询语句(SQL Server子查询的深入理解)
- dedecms数据库备份地址(dedecms搬家时出现数据库导入失败的解决方法)
- qgis 如何平滑折线(Sqlview动态发布地图图层的方法)
- divcss页面布局步骤(横向两列布局左列固定,右列自适应的4种CSS实现方式)
- dedecms网站空白(DEDECMS支持中文水印的解决方法)
- vue插槽的分类(vue具名插槽的基本使用实例)
- 怎么选择云服务器(云服务器配置如何选择你知道吗?)
- 忘记mysql密码怎么登录(Mysql用户忘记密码及密码过期问题的处理方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9