如何在CodeIgniter中获取模型实例?

时间:2018-07-14 06:29:40

标签: php codeigniter

我想在CodeIgniter的每个模型中传递一个公共变量。我正在搜索CI_Model instance之类的get_instance(),即CI_Controller

我正在尝试从控制器中进行以下操作

$ci_model = an_ci_model_instance();
$config['testvar'] = "Test Value";
$this->load->model($ci_model, '', $config);

我想从任何模型访问testvar变量。如果问题有点模棱两可,我感到抱歉。

2 个答案:

答案 0 :(得分:1)

application/core/MY_Model.php中创建一个新文件:

class MY_Model extends CI_Model {
     public $somevar = 'foobar';
}

然后在application/models中的每个模型中执行以下操作:

class Some_model extends MY_Model {
    function dosomething() {
        echo $this->somevar;
    }
}

因此:

$this->load->model('some_model');
$this->some_model->dosomething(); // prints 'foobar'

模型加载的第二个参数只是更改您用来访问它的名称,而第三个仅用于数据库配置。

您也可以执行相同的方法,只需使用CI_Controller扩展MY_Controller,并且所有模型都可以访问var,而无需扩展MY_Model,但是在这种情况下,控制器将必须扩展MY_Controller

答案 1 :(得分:0)

您收到任何错误吗?何时开启PHP_ERROR?

尝试一下

CI_Base :: get_instance();