php - 如何在 CodeIgniter 的同一 Controller 中将数据/变量从一种方法发送到另一种方法?

标签 php codeigniter

我在 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/

相关文章:

css - 使用 Zurb 的 Foundation 4 框架,仅使用 CSS。没有SASS/指南针?

php - Codeigniter 文件上传无法在实时服务器上运行

mysql - 仅从具有 where 条件的连接表中选择第一条记录

php - PHP 项目什么时候对于框架来说太小?

javascript - 将数据从动态表提交到数据库 - PHP

php - Content-disposition:inline header 不会显示内联图像?

php - PyroCMS:如何在模块之间共享资源?

php - 如何存储mysql设置?

php - XML解析错误: mismatched tag </br> in PHP XML File

php - 让 localhost 在 mac OS X Yosemite 上运行