如何在CodeIgniter中的同一个控制器中将数据/变量从一种方法发送到另一种方法?

时间:2012-03-26 07:02:18

标签: php codeigniter

我在CodeIgniter中的同一个控制器中有2个函数/方法,如下所示:

public function _get_page_settings() {
    $page_settings = $this->page_model->get_page_settings();
    $data['ps'] = $page_settings;
}

public function registration() {
    $this->_get_page_settings();
    $this->load->view('page_registration', $data);
}

第一种方法 _get_page_settings()从db中获取一些内容并将其存储在数据数组中的变量ps中。

我想在此控制器内的许多其他方法中使用此方法。

那么,如何正确地将数据发送到 registration(),因为上面的代码没有正常工作。它在我的视图中抛出此错误: 消息:未定义的变量:第70行的数据,即此行: $ this-> load-> view('page_registration',$ data);

编辑:已解决!

我终于明白了。你可以这样做:

public function _get_page_settings() {
    $data['ps'] = $this->page_model->get_page_settings();
    $this->ps = $data['ps'];
}

public function registration() {
    $this->_get_page_settings();
    $this->load->view('page_registration', $this->ps);
}

并在视图中输出它,例如:

<?php echo $this->ps->page_name; ?>

1 个答案:

答案 0 :(得分:2)

$data只是具有不同的可见范围,这不是CodeIgniter特有的。您可以通过两种方式解决此问题:

  • 使$data成为一个类属性($this->data
  • _get_page_settings()返回$data并在调用时将其分配给变量。