You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 3.1.11能否像控制器一样实现视图路径重定向?

CodeIgniter视图加载路径别名配置方案

实现原理

通过扩展CodeIgniter核心的Loader类,重写视图加载逻辑,给视图名配置别名映射,不需要修改原有业务代码和视图文件的实际存储位置,即可完成路径自动转换,适配迁移后的目录结构。

操作步骤

  1. 新增核心扩展类
    在application/core目录下新建MY_Loader.php文件,写入以下代码:
<?php
class MY_Loader extends CI_Loader {
    public function view($view, $vars = array(), $return = FALSE) {
        // 读取配置中的视图别名映射
        $alias_map = $this->config->item('view_alias_map');
        // 如果存在对应别名,替换为实际存储路径
        if (isset($alias_map[$view])) {
            $view = $alias_map[$view];
        }
        // 批量迁移场景可选:如果所有原根目录视图都放在partials下,直接开启自动加前缀逻辑,无需逐个配置
        // if (strpos($view, '/') === FALSE) {
        //     $view = 'partials/' . $view;
        // }
        return parent::view($view, $vars, $return);
    }
}
  1. 配置视图别名映射
    在application/config/config.php中添加自定义配置项,配置原有视图名和实际路径的对应关系:
$config['view_alias_map'] = [
    'header' => 'partials/header',
    'footer' => 'partials/footer',
    // 其他需要映射的视图按格式添加即可
];

验证效果

配置完成后,原有业务代码中$this->load->view('header');无需修改,系统会自动加载views/partials/header.php文件,完全满足迁移需求。

注意事项

  • 如果你修改过$config['subclass_prefix']配置项,需要将MY_Loader.php的文件名前缀改为你设置的对应值
  • 该方案不会影响原有正常路径的视图加载,仅匹配到映射规则的视图会做路径转换

内容的提问来源于stack exchange,提问作者eggplants

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:12:03