在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()方法是其核心功能之一,它允许开发者自由地定义哪些控制器方法应当被调用,以及如何将URI中的信息映射到特定的方法。接下来,将详细地探讨_remap()方法的使用和它能够带来的两大好处。 ...
11. **升级的开发工具**:开发过程中,CodeIgniter4提供了更好的调试工具,如Profiler,可以追踪查询性能、内存使用等。 12. **社区支持**:CodeIgniter4拥有活跃的开发者社区,提供丰富的文档、教程和插件,使得...
CodeIgniter的`Language`类提供了加载和获取语言字符串的方法,可以根据用户的选择动态加载相应的语言文件。 实现多语言功能还需要考虑用户的语言选择。这可以通过HTTP头信息、Cookie或用户设置来检测。例如,可以...
此外,"codeigniter_user_guide.zip" 文件可能是 CHM 文件的源文件或另一种格式的文档,可能包含更详尽的信息,如示例代码、教程和开发者社区的更新。解压缩后,你可以查看 HTML 版本的文档,这样更便于在线阅读和...
【标题】"Pusher-for-CodeIgniter-Master:CodeIgniter框架中的PHP Pusher库" 【描述】这个项目是一个专门为CodeIgniter框架设计的PHP Pusher库,它允许开发者在他们的应用程序中轻松地实现实时通信功能。Pusher是...
6. **整合CodeIgniter**:`jqgrid_codeigniter_library`可能包含了一个`jqGrid`助手文件(`jqgrid_helper.php`)和一个库文件(`jqgrid_lib.php`)。助手文件可能包含了一些便捷函数,用于简化在CodeIgniter中的`...
提供codeigniter_1.7.1_类库供广大的CI学习或开发者参考。
即使URL中指定了具体的方法,也会先调用`_remap()`。以下是一个例子: ```php function _remap($method, $params = array()) { echo $method; // 输出调用的方法名 var_dump($params); // 输出URL参数 $this->$...
CodeIgniter_2.1.2 中文操作手冊
9. URL路由:通过自定义URL路由规则,CodeIgniter可以让URL看起来更整洁,同时可以映射到不同的控制器方法。 10. 配置管理:框架提供了一种灵活的方式来设置和管理应用程序的配置参数,如数据库连接、全局变量等。 ...
它为开发者提供了一个全面的API参考,帮助他们理解和使用框架中的每个类和方法。此外,手册还涵盖了错误处理、日志记录以及性能优化等方面的指导。 2. **CodeIgniter用户指南(v1.7.2).chm**:这是CodeIgniter ...
这个名为"CodeIgniter_2.0.2.zip"的压缩包包含了CodeIgniter框架的2.0.2版本。这个版本在当时是相当流行的选择,因为它提供了稳定性和性能的平衡,同时也支持那时广泛使用的PHP 5.2.x版本。 CodeIgniter 2.0.2的...
CodeIgniter 2.0.0 是一个基于PHP的轻量级框架,它为开发者...在解压的CodeIgniter_2.0.0文件中,你可以找到框架的核心文件、配置文件、库、模型、视图、控制器以及帮助文档,这些都是构建基于CodeIgniter应用的基础。
在`CodeIgniter_2.1.4.zip`这个压缩包中,包含了一些核心文件和目录,它们构成了框架的基础架构: 1. `.gitignore`:这是一个Git版本控制系统使用的文件,它定义了哪些文件或目录应该被忽略,不纳入版本控制。在这...
**PHP CodeIgniter 中文手册** CodeIgniter(CI)是一个轻量级的PHP框架,专为构建高效、可扩展的Web应用而设计。它的设计理念是保持代码简洁、优雅,同时提供强大的功能,使得开发过程既快速又愉快。CI的核心特性...
在现代 Web 开发中,Laravel 和 CodeIgniter 都是 PHP 的流行框架,各自拥有独特的优点和特性。Laravel 是一个全面且富有表现力的框架,提供了许多高级特性和工具,如Artisan 命令行工具、Eloquent ORM 和 Blade ...
综上所述,"ttd.zip_codeigniter_html" 是一个使用CodeIgniter PHP框架和HTML创建的Web项目,由AZS.VN团队开发。项目包含了一系列Web开发的基本元素,如入口文件、服务器配置、图像资源、前端资产、项目笔记、核心...