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 相关文章推荐
把从SQL中取出的数据转化成XMl格式
Oct 09 PHP
在Windows版的PHP中使用ADO
Oct 09 PHP
php ios推送(代码)
Jul 01 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
thinkphp框架实现数据添加和显示功能
Jun 29 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 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 分页类 扩展代码
2009/06/11 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
jquery的index方法实现tab效果
2011/02/16 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python关闭占用端口方式
2019/12/17 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
委托书模板
2014/04/04 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
详解Python如何批量采集京东商品数据流程
2022/01/22 Python
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android