在Codeigniter 中,其实有个容易忽略掉的不错的控制器层处理的方法,
那就是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了,否则显示出错信息
分享到:
相关推荐
主要介绍了CodeIgniter中的_remap()使用方法2例,需要的朋友可以参考下
CI 代码 ,CodeIgniter4-4.0.2
CodeIgniter_2.0.0.zip CodeIgniter_2.0.0.zip CodeIgniter_2.0.0.zip
[其他类别]CodeIgniter 开源PHP框架 1.7.1_codeigniter_1.7.1.zip
PHP Pusher library for codeigniter framework
提供codeigniter_1.7.1_类库供广大的CI学习或开发者参考。
jqgrid_codeigniter_library
CodeIgniter_1.72中文参考手册.pdfCodeIgniter_1.72中文参考手册.pdf
CodeIgnite3 中文使用手册 + CHM文件
CodeIgniter_2.1.2 中文操作手冊
CodeIgniter_2.1.4.zip
CodeIgniter_1.7.2 CodeIgniter_1.7.2 CodeIgniter_1.7.2
CodeIgniter_2.0.2.zipCodeIgniter_2.0.2.zipCodeIgniter_2.0.2.zipCodeIgniter_2.0.2.zip
PHP7.3的sql server PDO_DBLIB库
PHP 框架 CodeIgniter_1.6.3
Laravel开发-codeigniter_migration CodeIgniterMigration是一个包,用于在Laravel5中集成已启动的CodeIgniter会话。
CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications. If you're a developer who ...
本资源包含: CodeIgniter中文参考手册.pdf; CodeIgniter用户指南(v1.7.2).chm; PHP敏捷开发框架CodeIgniter.chm。
NULL 博文链接:https://spring036765.iteye.com/blog/805179