我在 CodeIgniter 的同一个 Controller 中有 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()从数据库中获取一些内容并将其存储在数据数组内的变量 ps 中。
我想在此 Controller 内的许多其他方法中使用此方法。
那么,如何将数据正确发送到registration(),因为上面的代码无法正常工作。在我看来,它抛出了这个错误: 消息: undefined variable :第 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);
}
并将其输出到 View 中,例如:
<?php echo $this->ps->page_name; ?>
最佳答案
$data
只是具有不同的可见性范围,这不是 CodeIgniter 特定的。您可以通过两种方式解决此问题:
- 将
$data
设为类属性 ($this->data
) - 使
_get_page_settings()
返回$data
并在调用时将其分配给变量。
关于php - 如何在 CodeIgniter 的同一 Controller 中将数据/变量从一种方法发送到另一种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867905/