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 相关文章推荐
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
php设计模式 State (状态模式)
Jun 26 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP APP微信提现接口代码
Sep 30 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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/05/27 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
Python实现调用另一个路径下py文件中的函数方法总结
2018/06/07 Python
python-str,list,set间的转换实例
2018/06/27 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
大家检讨书5000字
2014/02/03 职场文书
出纳担保书范文
2014/04/02 职场文书
爱心捐书活动总结
2014/07/05 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
优秀班主任申报材料
2014/12/16 职场文书