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 相关文章推荐
967 个函式
Oct 09 PHP
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
PHP 事务处理数据实现代码
May 13 PHP
PHP计数器的实现代码
Jun 08 PHP
sae使用smarty模板的方法
Dec 17 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
PHP中soap的用法实例
Oct 24 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 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配置文件中最常用四个ini函数
2007/03/19 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
Python使用scrapy爬取阳光热线问政平台过程解析
2019/08/14 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
保卫钓鱼岛口号
2014/06/20 职场文书
领导班子四风表现材料
2014/08/23 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
校园安全教育心得体会
2016/01/15 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
python实现会员信息管理系统(List)
2022/03/18 Python