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开启安全模式后禁用的函数集合
Jun 26 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
php生成静态页面的简单示例
Apr 17 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
php短址转换实现方法
Feb 25 PHP
php去除头尾空格的2种方法
Mar 16 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
php获取当前url地址的方法小结
Jan 10 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
Laravel 实现密码重置功能
Feb 23 PHP
tp5修改(实现即点即改)
Oct 18 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动态生成静态HTML网页的代码
2010/03/04 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python类继承用法实例分析
2014/10/10 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
化验室技术员岗位职责
2013/12/24 职场文书
机关出纳岗位职责
2014/04/03 职场文书
行政求职信
2014/07/04 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
安全伴我行主题班会
2015/08/13 职场文书
Jsonp劫持学习
2021/04/01 PHP