我在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; ?>
答案 0 :(得分:2)
$data
只是具有不同的可见范围,这不是CodeIgniter特有的。您可以通过两种方式解决此问题:
$data
成为一个类属性($this->data
)_get_page_settings()
返回$data
并在调用时将其分配给变量。