在Codeigniter中的类的构造函数中加载模型

时间:2014-01-10 10:20:06

标签: php codeigniter

我试图在这里使用 DRY原则,因此我尝试将我的模型分配给构造函数中的变量。

以下课程位于我的图书馆目录中。

到目前为止,我有这个......

class Cpd_handler
{
    protected $dateHelper;
    protected $userHelper;
    protected $reportsModel;
    protected $dataModel;

    public function __construct()
    {
        $CI =& get_instance();
        $this->dateHelper   = $CI->load->library('helpers/date_helper');
        $this->userHelper   = $CI->load->library('helpers/user_helper');
        $this->reportsModel = $CI->load->model('cpd/Reports_model');
        $this->dataModel    = $CI->load->model('Tp_data_model');    }


    public function sectorOverview($data)
    {       
        var_dump($this->dataModel);
    }

当我尝试转出$this->dataModel时,它只返回 NULL

有人可以告诉我,我做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

根据CI文档

Loader, as the name suggests, is used to load elements. 
These elements can be libraries (classes) View files, Helpers, Models, or 
your own files

所以不要像这样分配

$this->dataModel    = $CI->load->model('Tp_data_model');

尝试

$CI->load->model('Tp_data_model');
$this->dataModel = $CI->Tp_data_model;
var_dump($this->dataModel);

假设您的Tp_data_model类中有名为get_data()的方法, 然后,如果$this->dataModel->get_data()

,您可以使用$CI->Tp_data_model->get_data()