PHP Codeigniter中的_remap方法简介_PHP教程
那就是remap,这里简单介绍下。
其实在CI的URL控制方式表示中,比如:
example.com/index.php/blog/comments/
这样的形式中,blog就是controller,comments就是你的方法了。
又比如参数的传递是这样的:
example.com/index.php/products/shoes/sandals/123
sandals/123就是传递的两个参数了。
URI 的第二片段决定会调用控制器中的哪个方法。CodeIgniter 允许你使用 _remap() 方法来废除这种规则:
public function _remap()
{
// Some code here...
}
注意:如果你的控制器中包含一个名为 _remap() 的方法,那么不管你的 URI 中包含什么,它总会被忽略掉。这个方法会废除掉由 URI 片段来决定哪个方法被调用的规则,允许你重新定义调用方法的规则(方法的路由规则)。
但问题是,手册上这样说的,会有什么用处呢?其实用处有两个:
1,改变URL,隐藏方法,比如你的应用中,原来的URL方法是:
http://anmsaiful.net/blog/display_successful_message
现在想改变显示的方法名为:
http://anmsaiful.net/blog/successful
但显示虽然是successful,但实际上是调用存在的display_successful_message
方法,这就要用到_remap方法了。
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了,否则显示出错信息
摘自 jackyrong
下一篇: 关于排序的问题
推荐阅读
-
PHP Codeigniter中的_remap方法简介_PHP教程
-
php在线解压zip文件的方法_PHP教程
-
PHP4与PHP3中一个不兼容问题的解决方法
-
PHP函数ini_get_all获取设置选项变量的方法介绍_PHP教程
-
PHP中的面向对象和面向过程的编程方法_PHP教程
-
查找mysql字段中固定字符串并替换的几个方法_PHP教程
-
thinkphp隐藏中url的index.php,thinkphpindex.php_PHP教程
-
Codeigniter购物车类不能添加中文的解决方法,codeigniter车类_PHP教程
-
php5.3以上版本中快速url重写的方法
-
解析php中call_user_func_array的作用_PHP教程