没有合适的资源?快使用搜索试试~ 我知道了~
Yii过滤器简介 过滤器是一段代码,可被配置在控制器动作执行之前或之后执行。例如, 访问控制过滤器将被执行以确保在执行请求的动作之前用户已通过身份验证;性能过滤器可用于测量控制器执行所用的时间。 一个动作可以有多个过滤器。过滤器执行顺序为它们出现在过滤器列表中的顺序。过滤器可以阻止动作及后面其他过滤器的执行。 过滤器有两种写法: 基于方法的过滤器 基于自定义过滤器类的过滤器 无论哪种过滤器,都必须在控制器中重写控制器的public function filters()方法,设置哪个过滤器对哪个动作起作用。 基于方法的过滤器 编写基于方法的过滤器,要经过三步: 在控制器中编写动作(Act
资源详情
资源评论
资源推荐
PHP的的Yii框架中过滤器相关的使用总结框架中过滤器相关的使用总结
Yii过滤器简介过滤器简介
过滤器是一段代码,可被配置在控制器动作执行之前或之后执行。例如, 访问控制过滤器将被执行以确保在执行请求的动作
之前用户已通过身份验证;性能过滤器可用于测量控制器执行所用的时间。
一个动作可以有多个过滤器。过滤器执行顺序为它们出现在过滤器列表中的顺序。过滤器可以阻止动作及后面其他过滤器的执
行。
过滤器有两种写法:
基于方法的过滤器
基于自定义过滤器类的过滤器
无论哪种过滤器,都必须在控制器中重写控制器的public function filters()方法,设置哪个过滤器对哪个动作起作用。
基于方法的过滤器基于方法的过滤器
编写基于方法的过滤器,要经过三步:
在控制器中编写动作(Action);
在控制器中编写过滤器函数,函数名必须以filter为前缀,如:function filterAccessControl();
重写父类CController的filters()方法,定义过滤器与动作的关系;
实例:
<?php
class UserController extends CController{
**
* 第一步:创建动作
*/
function actionAdd(){
echo "actionAdd";
}
/**
* 第二步:创建基于方法的过滤器
*/
public function filterAddFilter($filterChain) {
echo "基于方法的过滤器UserController.filterAdd<br>";
$filterChain->run();
}
/**
* 第三步:重写父类CController的filters()方法,定义过滤器与动作的关系
* @see CController::filters()
*/
public function filters(){
return array(
//定义过滤器与动作的关联关系
'addFilter + add',
// array(
// 'application.filters.TestFilter',
// ),
);
}
}
自定义过滤器类自定义过滤器类
自定义过滤器类,需要单独写一个过滤器类,并继承CFilter类,重写CFilter类下的部分方法。大家可以看一下CFilter类的代
码,该类代码不多,还是很容易看懂的。
自定义过滤器实例:
<?php
class TestFilter extends CFilter{
/**
* Performs the pre-action filtering.
weixin_38682242
- 粉丝: 5
- 资源: 991
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Docker容器配置进阶
- tensorflow-gpu-2.7.4-cp37-cp37m-manylinux2010-x86-64.whl
- 多段线、 圆、弧转多段线(仅我可见)
- tensorflow-2.7.2-cp38-cp38-manylinux2010-x86-64.whl
- yeyue-p8Yi4-ve4a83792.apk
- tensorflow-gpu-2.7.3-cp38-cp38-manylinux2010-x86-64.whl
- 五相感应电机矢量控制模型MATLAB
- RGLED (1) (1).circ
- IMG_20240427_215747.jpg
- python下前端WEB学习笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0