为什么我的代码以:在null上调用成员函数sample_template()

时间:2016-11-27 09:36:11

标签: php codeigniter-3

我在codeigniter中使用分层MVC模型。我创建了一个名为template的控制器,里面有一个名为sample_template的函数。然后创建一个名为sample_template_v的视图,并在模板控制器内调用它。我创建了另一个名为Admin的控制器,并调用了Template-> sample_template($ data);在其2个功能中。

MY_Controlle.php

<?php

class MY_Controller extends MX_Controller

{

    function __construct()
    {
        parent::__construct();

        $this->load->module('Template');
    }
}

admin.php的

<?php

class Admin extends MY_Controller

{

    function __construct()

    {
        parent::__construct();
    }

    function index()
    {

        $data['content_view'] = 'admin/admin_v';
        $this->Template->sample_template($data);

    }

    function about()
    {
        $data['content_view'] = 'admin/about_v';
        $this->Template->sample_template($data);
    }

}

的template.php

<?php

class Template extends MY_Controller

{

    function __construct()
    {
        parent::__construct();
    }

    function sample_template($data = NULL)
    {
        $this->load->view('Template/sample_template_v', $data);
    }
}

sample_template_v.php文件----&gt;

<h5>This is the main Template.</h5>


<?php $this->load->view($content_view); ?>

错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果要从对象调用方法,则需要初始化对象,然后调用方法。在你的情况下确保$this->template is set不是。

    $this->template = new Template();

    $this->template->sample_template($data);