在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);
答案 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 /')。
我绝不会建议编辑系统文件。如果您需要更改任何内容,则只需扩展该类。