Yii控制器中filter过滤器用法分析


Posted in PHP onJuly 15, 2016

本文实例讲述了Yii控制器中filter过滤器用法。分享给大家供大家参考,具体如下:

指定过滤动作,(如下projectContext()方法在新建,列表,管理页面调用时使用)

public function filters()
{
  return array(
    'accessControl', // perform access control for CRUD operations
    'postOnly + delete', // we only allow deletion via POST request
    'projectContext +create index admin',
  );
}

添加一些过滤器逻辑,定义过滤方法,过滤方法前必加filter

public function filterProjectContext($filterChain)
{
  $prijectId = null;
  if(isset($_POST['pid'])){
    $projectId = $_POST['pid'];
  }elseif(isset($_GET['pid'])){
    $projectId = $_GET['pid'];
  }
  $this->loadProject($projectId);
  $filterChain->run();
}
public function loadProject($projectid)
{
  if($this->_project === null){
    $this->_project = Project::model()->findbyPK($projectid);
    if($this->_project === null){
      throw new CHttpException(404,'请求和项目没找到!');
    }
  }
  return $this->_project;
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
php cout<<的一点看法
Jan 24 PHP
PHP图片上传代码
Nov 04 PHP
PHP中foreach()用法汇总
Jul 02 PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
PHP重载基础知识回顾
Sep 10 PHP
Yii编程开发常见调用技巧集锦
Jul 15 #PHP
如何正确配置Nginx + PHP
Jul 15 #PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 #PHP
Yii列表定义与使用分页方法小结(3种方法)
Jul 15 #PHP
session 加入redis的实现代码
Jul 15 #PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 #PHP
功能强大的PHP POST提交数据类
Jul 15 #PHP
You might like
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
js 获取radio按钮值的实例
2013/08/17 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Vue+axios 实现http拦截及路由拦截实例
2017/04/25 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
python requests.post带head和body的实例
2019/01/02 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
售前工程师职业生涯规划
2014/03/02 职场文书
公司年会主持词
2014/03/22 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技