使控制器构造函数值全局codeigniter

时间:2012-01-06 06:43:53

标签: php codeigniter codeigniter-2

我试图从数据库中获取未读帐户总数,该值已分配给$data['head']

我想全局使用$ data ['head'],因此它会自动加载到模板中并显示在标题上。

这样做的最佳方式是什么?

以下是我的控制器

function __construct()
    {

    parent::__construct();
    $this->load->model('process_model');
    $data['headbody']='includes/header';
    $data['head'] = $this->process_model->loadnew($this->session->userdata('id'));

    }


function invform()
    {
        $this->load->model('slave');
        $data['body']='slave-account';

        $data['questions'] = $this->slave->loadq($this->uri->segment(3));

        $this->load->view('includes/template',$data);
    }

查看

$this->load->view($head);

 $this->load->view($body);

 $this->load->view('includes/footer');

1 个答案:

答案 0 :(得分:2)

首先需要使用变量范围将 $ data 放入函数外部的变量中。可以是私人的或公共的。在这种情况下,我将其设为私有。

这是一个快速修订:

private $data = array();

function __construct()
    {

    parent::__construct();
    $this->load->model('process_model');
    $this->data['headbody']='includes/header';
    $this->data['head'] = $this->process_model->loadnew($this->session->userdata('id'));

    }


function invform()
    {
        $this->load->model('slave');
        $this->data['body']='slave-account';

        $this->data['questions'] = $this->slave->loadq($this->uri->segment(3));

        $this->load->view('includes/template',$this->data);
    }

请注意 $ this->数据,而不是 $ data 。当我们在同一个类中访问变量但在函数外部时,我们使用 $ this