我想在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变量。如果问题有点模棱两可,我感到抱歉。
答案 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();