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 循环列出目录内容的函数代码
May 26 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
php计算一个文件大小的方法
Mar 30 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
php中请求url的五种方法总结
Jul 13 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
用php实现分页效果的示例代码
Dec 10 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 程序员应该使用的10个组件
2009/10/31 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
Python 查看文件的读写权限方法
2018/01/23 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
亲子运动会的活动方案
2014/08/17 职场文书
2015年科协工作总结
2015/05/19 职场文书
开业典礼致辞
2015/07/29 职场文书
停车场管理制度范本
2015/08/05 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技