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版(2)
Oct 09 PHP
一个php导出oracle库的php代码
Apr 20 PHP
PHP CURL获取返回值的方法
May 04 PHP
php中error与exception的区别及应用
Jul 28 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
golang与PHP输出excel示例
Jul 22 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
通过php动态传数据到highcharts
Apr 05 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php接口隔离原则实例分析
Nov 11 PHP
php实现图片压缩处理
Sep 09 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
js中开关变量使用实例
2017/02/24 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
jQuery实现本地存储
2020/12/22 jQuery
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
Python入门篇之对象类型
2014/10/17 Python
python+opencv实现动态物体追踪
2018/01/09 Python
python 将md5转为16字节的方法
2018/05/29 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
冰淇淋店的创业计划书
2014/02/07 职场文书
总经理助理的职责
2014/03/14 职场文书
二年级小学生评语
2014/04/21 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
行政处罚决定书
2015/06/24 职场文书