在笨分离模型的文件夹,文件夹视图和控制器夹(separating Model folder, vie

2019-10-18 09:44发布

我可以放置笨到不同位置的MVC结构的模型和视图文件夹而不考虑到常规路径

application/views
application/models

到其他位置,可以说,

abc/views
pqr/models

外的项目文件夹。 如果可能的话那我怎么才能实现它。

先感谢您

Answer 1:

有没有功能,自定义modelsviews中的CodeIgniter当前稳定版本的路径(而在CI 3.x中,您可以更改view路径,以及applicationsystem )。

但是,你可以加载的典型外文件viewsmodels的文件夹。

该文件的路径是相对的。 所以,你可以使用../走在路中的一个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

作为一个侧面说明 :请确保直接访问到pqrabc目录限制。 添加.htaccess它们内部文件,内容Deny from all



Answer 2:

要自定义模型和视图的“应用程序”文件夹外,按照下列简单的步骤,

  • 创建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);


Answer 3:

我不知道,你可以移动视图和模型到不同的位置,但你可以改变应用程序文件夹的位置到您选择的位置。

您可以将您的应用程序目录到不同的位置,然后打开你的index.php文件,并设置$ system_folder和$ application_folder变量与新的路径值,最好用全路径,如“/网络/ MYUSER /系统”。

参考: http://ellislab.com/codeigniter/user-guide/installation/index.html

希望这是有帮助的。



文章来源: separating Model folder, view folder and controller folder in codeigniter