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 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
生成php程序的php代码
Apr 07 PHP
PHP教程 基本语法
Oct 23 PHP
PHP校验ISBN码的函数代码
Jan 17 PHP
php适配器模式介绍
Aug 14 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php阻止页面后退的方法分享
Feb 17 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
php外部执行命令函数用法小结
Oct 11 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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文章的实现代码
2013/02/17 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
python创建进程fork用法
2015/06/04 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
python装饰器使用实例详解
2019/12/14 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
python中的错误如何查看
2020/07/08 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
Python 随机按键模拟2小时
2020/12/30 Python
英国最大的海报商店:GB Posters
2018/03/20 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
学生实习介绍信
2014/01/15 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
超市客服工作职责
2014/06/11 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
2014年信用社工作总结
2014/11/25 职场文书
工程合作意向书范本
2015/05/09 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书