在yii框架中,控制器的过滤器分为执行前和执行后,这里举例是在执行控制器前的过滤。

需要在components/文件夹下定义公共的TestAction.php文件,并且实现run()方法。这个action是各个控制器公用的。

class TestController extends Controller
{
/**
* 定义外部的action
* @return array
*/
public function actions()
{
return array(
'testa' => array(
'class' => 'TestAction'
)
);
}
public function filters()
{
return array(
         //'tes+edit,modify' 仅仅edit和modify需要执行过滤
'tes-delete' //除了delete外,其他都需要执行过滤
);
}
public function filterTes($filterChain)
{
echo "this is a filter...\r\n";
/*
* 定义过滤器链,$filterChain让后面的控制器继续执行
*/
$filterChain->run();
} public function actionTe()
{
echo $this->action->id.PHP_EOL;
Yii::app()->clientScript->registerScriptFile();
echo "this is test controller...\r\n";
}
public function actionDelete()
{
echo "this is delete action...\r\n";
}
}

yii框架中关于控制器中filter过滤器和外部action的使用的更多相关文章

  1. CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写

    Q: CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写 A: 建议统一写,CI框架会自动识别已经加载过的类,所以不用担心重复加载的问题 class C_User ...

  2. 在IE中MVC控制器中返回JSON格式的数据时提示下载

    最近做项目时,视图中用jquery.form.js异步提交表单时,接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如 ...

  3. Yii框架中集成phprpc、hprose

    在项目开发的过程中有时候会涉及到对外提供接口供第三方程序调用或者是不同程序间需要相互通信,那么最通用的做法是用传统的SOAP方式来实现,用XML的文档格式来作为传输载体.但是这种方式不灵活,支持的数据 ...

  4. YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因

    YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因在YII框架的使用过程中,我们可以使用foreach直接遍历findAll等方法返回的对象的属性为什么呢?其实这与CMo ...

  5. PHP开发框架之YII框架学习——碾压ThinkPHP不是梦

      前  言 JRedu 程序猿是一种慵懒的生物!能少敲一行代码,绝对不会多敲一个字符!所以,越来越多的开发框架应运而生,在帮助我们完成功能的同时,极大程度上也帮我们节省了人力物力,而且也提高了系统的 ...

  6. SpringBoot系列——Filter 过滤器

    前言 本文记录一下在SpringBoot项目中是如何使用Filter过滤器 代码.测试 Filter过滤器是servlet包下面的东西,因此我们不需要再额外引包 方法一 直接实现Filter接口,并使 ...

  7. yii框架的中的一些使用介绍

    Yii框架的使用整理 获取配置文件中的数据 Yii::$app->params[‘配置文件中对应的参数名称’] 获取文件表单提交的数据 Yii::$app->request->pos ...

  8. Yii 框架中安装 memcache 及配置和测试

    安装php_memcache.dll扩展 1.首先将php_memcache.dll文件放入E:\server\php\ext目录下 (php_memcache.dll下载地址:http://wind ...

  9. Java中的Filter过滤器

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 ...

随机推荐

  1. win8 or win7安装ubuntu双系统

    安装双系统的效果 现在使用win和linux双系统,整个环境相当方便好用,比如在Linux系统上,仍能访问NTFS(win的文件系统格式)中的文件和文档,当然win下的一些像matlab.vs等是不能 ...

  2. CentOS6.5部署L2TP over IPSec

    一.环境介绍: 1.CentOS 6.5 (要求双网卡做软路由,如果只是做VPN可以单网卡) a.外网IP: b.内网IP: 2.Window 10 主机一台做为一台内网测试软路由使用: a.内网IP ...

  3. wampserver使用过程中遇到的问题及相关配置

    wampserver集合了Apache+PHP+Mysql 下载地址:点这里 安装过程很方便,一直点下一步就行,中间会提示选择默认的浏览器及文件编辑器 起因: 使用过程中提示: In the http ...

  4. sudo密码错误的解决办法

    按一下Caps Lock键,如果大写灯亮了,再按一下. 然后重新输入sudo密码,尝试.

  5. React添加自定义属性

    使用‘data-’前缀即可,代码举例 render(){ return ( <ul className={css.forUl}> { this.props.todo.map(functio ...

  6. Jni Tips

    1.JavaVM and JNIEnv JNI有两种关键的数据结构,JavaVM和JNIEnv,两者均为指向VM方法JNI方法的列表的的指针(C++版本中它们是Class,Class的所有成员均为函数 ...

  7. Linux常用命令汇总及使用方法(一)

    最近开始学习Linux,但是因为原来没有接触过,所有现在先将Linux中常用的命令记录下来,方便自己后期使用. 1.登陆 通过secureCRT/xshell/ssh等软件远程登陆Linux (1)# ...

  8. mysql 提示too many connections”的解决办法

    最近使用python多线程连接mysq打数据,安装好mysql后,使用500线程连接发现提示:too many connections, 查询方法得知是需要进行配置才行: 产生这种问题的原因是: 连接 ...

  9. android 5.0 -- Ripple 效果

    Ripple 水波纹效果,也就是涟漪效果. 波纹效果有两种: 1,波纹有边界:波纹涟漪效果只是显示在控件内部 android:background="?android:attr/select ...

  10. linux命令随记

    1.当再Hadoop平台上跑代码的时候,可能会发现有些job是需要被kill重新跑的,此刻,如果一个一个手动去删除会很缓慢,此刻需要使用一个简单的脚本来实现自动全部删除操作: for i in `ha ...