Loader Class View Codeigniter

时间:2014-06-27 12:22:30

标签: codeigniter

在codeigniter系统核心loader.php中有一个$ this->_ci_view_paths = array(APPPATH.'views/' => TRUE);函数

如果我想更改$this->_ci_view_paths = array(APPPATH.'views/template'=> TRUE);功能的路径。

我是否可以在MY_Loader.php中执行此操作是否会覆盖默认位置。

我有hmvc但没有改变视图路径

public function view($view, $vars = array(), $return = FALSE) {
        list($path, $_view) = Modules::find($view, $this->_module, 'views/template/');

        if ($path != FALSE) {
            $this->_ci_view_paths = array($path => TRUE) + $this->_ci_view_paths;
            $view = $_view;
        }

        return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return));
    }

因为我希望能够执行此操作$this->load->view('user/user_list', $data);而不是$this->load->view('template/user/user_list', $data);

1 个答案:

答案 0 :(得分:1)

我以前做过这个。我想要"观点"目录进入主public_html目录。

这就是我做的方法(在应用程序文件夹内的核心目录中创建一个新文件(MY_Loader.php));

class MY_Loader extends CI_Loader {

    public function __construct()
    {
        $this->_ci_view_paths = array(FCPATH . 'views/' => TRUE);
        $this->_ci_ob_level  = ob_get_level();
        $this->_ci_library_paths = array(APPPATH, BASEPATH);
        $this->_ci_helper_paths = array(APPPATH, BASEPATH);
        $this->_ci_model_paths = array(APPPATH);

        log_message('debug', "MY_Loader Class Initialized");
    }       

}

然后,我可以将views文件夹移动到我想要的任何地方(FCPATH。' views /')。

我绝不会建议编辑系统文件。如果您需要更改任何内容,则只需扩展该类。