CodeIgniter框架中_remap()使用方法2例


Posted in PHP onMarch 10, 2014

一、CodeIgniter手册相关介绍
URI 的第二片段决定会调用控制器中的哪个方法。CodeIgniter 允许你使用 _remap() 方法来废除这种规则:

public function _remap()  
{  
    // Some code here...  
}

注意:如果你的控制器中包含一个名为 _remap() 的方法,那么不管你的 URI 中包含什么,它总会被忽略掉。这个方法会废除掉由 URI 片段来决定哪个方法被调用的规则,允许你重新定义调用方法的规则(方法的路由规则)。
既可以通过example.com/index.php/ blog /   来调用_remap()的方法,若_remap()有参数,则在/后加参数,调用具体的代码。
二、使用方法2例
但问题是,手册上这样说的,会有什么用处呢?其实用处有两个:

1、改变URL,隐藏方法,比如你的应用中,原来的URL方法是: 

example.com/index.php/blog/say

现在想改变显示的方法名为: 
example.com/index.php/blog/hello

但显示虽然是hello,但实际上是调用存在的say方法
2、还可以借这个函数做简单的函数方法权限控制,比如:
public function _remap($method, $params = array())  
{  
    $user_type = $_SESSION['user_type'];  
    $access_control = $this->validate_access($user_type,$method);  
    if ($access_control){  
        $this->$method();  
    }  
    else{  
        $this->show_message();  
    }  
}

首先取出用户session中的级别 $user_type,然后检查通过方法  validate_access这个用户有无权限调用这个方法($method) ,如果有的话$access_control==true了,否则显示出错信息。
PHP 相关文章推荐
PHP程序员编程注意事项
Apr 10 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
PHP输入流php://input介绍
Sep 18 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP线程的内存回收问题
Jul 08 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
详细解读php的命名空间(二)
Feb 21 PHP
PHP实现Redis单据锁以及防止并发重复写入
Apr 10 PHP
PHP迭代器和生成器用法实例分析
Sep 28 PHP
PHP文件大小格式化函数合集
Mar 10 #PHP
php GUID生成函数和类
Mar 10 #PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 #PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 #PHP
php实现文件编码批量转换
Mar 10 #PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 #PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 #PHP
You might like
php类中private属性继承问题分析
2012/11/01 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
accesskey 提交
2006/06/26 Javascript
jQuery对象与DOM对象之间的转换方法
2010/04/15 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
Vue 组件封装 并使用 NPM 发布的教程
2018/09/30 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
js中的闭包实例展示
2018/11/01 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
详解Django配置JWT认证方式
2020/05/09 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
什么是设计模式
2012/06/17 面试题
学生发电厂实习自我鉴定
2013/09/22 职场文书
经济信息管理专业大学生求职信
2013/09/27 职场文书
校班主任推荐信范文
2013/12/03 职场文书
早餐连锁店计划书
2014/01/08 职场文书
工厂实习感言
2014/01/14 职场文书
揭牌仪式主持词
2014/03/19 职场文书
党在我心中演讲稿
2014/09/02 职场文书