使用 codeigniter 在控制器中使用 $CI->load->vars() 获取加载的变量

Posted

技术标签:

【中文标题】使用 codeigniter 在控制器中使用 $CI->load->vars() 获取加载的变量【英文标题】:Get loaded variables with $CI->load->vars() in controller with codeigniter 【发布时间】:2017-05-17 09:08:20 【问题描述】:

我知道如何从控制器加载变量以使其可访问所有视图:

$data['xxx'] = 'yyy';
$CI->load->vars($data); 

就这么简单。

但是如何将xxx 变量传递给子控制器而不是视图?

$data 变量似乎不存在于扩展控制器中。

【问题讨论】:

【参考方案1】:

子控制器自动从父控制器继承所有公共和受保护的变量和方法。所以你不需要单独传递。这里是一个例子..

class Parent_controller extends CI_Controller

  protected $xxx = 'hello im parent';

  public function_name()

  


然后做一个子控制器扩展Parent_controller如下:

class Child_controller extends Parent_controller
    echo $xxx; //outputs hello im parent OR you can overright it
     //similarly you can make function call to parent's function
      

学习关于继承的主题对你来说已经足够了。但是子控制器无法访问具有私有作用域的变量和方法。

【讨论】:

以上是关于使用 codeigniter 在控制器中使用 $CI->load->vars() 获取加载的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CodeIgniter 中使用多个控制器?

codeigniter - 在控制器中使用帮助器不起作用

如何在 CodeIgniter 4 中使用子目录控制器?

如何在 php 中使用 exec 命令运行 codeigniter 控制器功能

使用 jquery / ajax 在 CodeIgniter 的控制器中调用函数

使用ajax在codeigniter控制器中调用函数不起作用