【问题标题】:How to send data/variable from one method to another in the same controller in CodeIgniter?如何在 CodeIgniter 的同一控制器中将数据/变量从一种方法发送到另一种方法?
【发布时间】:2012-03-26 07:02:17
【问题描述】:

我在 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; ?>

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

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

    • $data 设为类属性 ($this-&gt;data)
    • 使_get_page_settings() 返回$data,并在调用时将其分配给变量。

    【讨论】:

    • 你能说得更具体些吗? ;)
    猜你喜欢
    • 2015-04-24
    • 1970-01-01
    • 2019-01-22
    • 2021-07-12
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多