我可以把codeigniter的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;
}
}
Controller:
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
文件在'applicationcore'目录下将以下代码复制到自定义中 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);
在CodeIgniter当前的稳定版本中,默认没有自定义模型和视图路径的功能(而在CI 3.x中,你可以改变视图路径以及应用程序和系统)。
但你可以通过在文件 {CI DIR}systemcoreLoader.php 而在主要的 索引.php 文件。
请看下面的例子。
修改文件 Loader.php 在CI 3.x中
第80行内容为
protected $_ci_model_paths = array(APPPATH);
改成
protected $_ci_model_paths = array(MODELPATH);
而在主要的 索引.php 文件,添加
$model_folder = 'pqr';
和
define('MODELPATH', $model_folder);
以自定义CI 3.x中已经给出的视图文件夹路径。
我不确定您是否可以将视图和模型移动到不同的位置,但您可以将应用程序文件夹的位置改为您选择的位置。
你可以将你的应用程序目录移动到不同的位置,然后打开index.php文件,用新的路径值设置$system_folder和$application_folder变量,最好是完整的路径,例如'wwwMyUsersystem'。
参考文献。http:/ellislab.comcodeigniteruser-guideinstallationindex.html。
希望对大家有所帮助。