我可以放置笨到不同位置的MVC结构的模型和视图文件夹而不考虑到常规路径
application/views
application/models
到其他位置,可以说,
abc/views
pqr/models
外的项目文件夹。 如果可能的话那我怎么才能实现它。
先感谢您
我可以放置笨到不同位置的MVC结构的模型和视图文件夹而不考虑到常规路径
application/views
application/models
到其他位置,可以说,
abc/views
pqr/models
外的项目文件夹。 如果可能的话那我怎么才能实现它。
先感谢您
有没有功能,自定义models
和views
中的CodeIgniter当前稳定版本的路径(而在CI 3.x中,您可以更改view
路径,以及application
和system
)。
但是,你可以加载的典型外文件views
和models
的文件夹。
该文件的路径是相对的。 所以,你可以使用../
走在路中的一个UP水平。
例如,如果abc
文件夹放置在靠近application
,你应该使用../../abc
到达该文件夹。
看看下面的例子:
模型:
class Model_name extends CI_Model {
public function baz($value='')
{
return $value;
}
}
控制器:
class Foo extends CI_Controller {
public function bar()
{
$this->load->model('../../pqr/models/model_name');
$data['var'] = $this->model_name->baz('Yes It Works!');
$this->load->view('../../abc/views/view_name', $data);
}
}
视图:
<?php echo $var; ?>
下面是示例文件夹结构:
application
system
pqr
/models
/model_name.php
abc
/views
/view_name.php
作为一个侧面说明 :请确保直接访问到pqr
或abc
目录限制。 添加.htaccess
它们内部文件,内容Deny from all
。
要自定义模型和视图的“应用程序”文件夹外,按照下列简单的步骤,
My_Loader.php
在“应用程序/核心”目录下的文件 将以下代码复制到自定义My_Loader.php
class MY_Loader extends CI_Loader { function mymodel($model, $folder = '',$vars = array(), $return = FALSE) { array_push($this->_ci_model_paths, ""); parent::model($model); } function myview($folder, $view, $vars = array(), $return = FALSE) { $this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH . '../' . $folder . '/' => TRUE)); return $this->_ci_load(array( '_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return )); }
$this->load->mymodel('folder/model');
和用于视图,
$this->load->myview('views','view_dir/view-php-file', $data);
我不知道,你可以移动视图和模型到不同的位置,但你可以改变应用程序文件夹的位置到您选择的位置。
您可以将您的应用程序目录到不同的位置,然后打开你的index.php文件,并设置$ system_folder和$ application_folder变量与新的路径值,最好用全路径,如“/网络/ MYUSER /系统”。
参考: http://ellislab.com/codeigniter/user-guide/installation/index.html
希望这是有帮助的。