如何在Code igniter中将变量从一个控制器传递到另一个控制器

Adi*_*iti 11 php codeigniter codeigniter-2

我刚开始学习Code Igniter.

我想知道如何将变量从一个控制器(first_cont.php)传递给其他控制器(second_cont.php)?

任何帮助,将不胜感激 .

提前致谢 :)

Mat*_*aly 13

这取决于具体情况.如果您想保留数据一段时间,那么会话数据将是最佳选择.但是,如果您只需要使用一次,则闪存数据可能更合适.

第一步是初始化会话库:

$this->load->library('session');
Run Code Online (Sandbox Code Playgroud)

然后将信息存储在闪存数据中:

$this->session->set_flashdata('item', $myVar);
Run Code Online (Sandbox Code Playgroud)

最后,在第二个控制器中,获取数据:

$myVar = $this->session->flashdata('item');
Run Code Online (Sandbox Code Playgroud)

显然,这意味着您必须再次从第二个控制器初始化会话库,或者创建自己的基本控制器来加载会话库并让两个控制器都继承该会话库.


Kal*_*tel 7

我认为在codeigniter中你无法在两个不同的控制器之间传递变量.一个明显的机制是使用会话数据.

  • 我同意这一点.CI具有通过URI访问控制器的特定路由.会话数据在这里很有用$ this-> sessions-> set_userdata('data',$ data); 重定向( 'second_cont.php'); (4认同)

Pra*_*nth 7

好的,关于MVC的一些内容大多数人都会引用:

控制器用于输入,模型用于逻辑,视图用于显示.

现在,严格来说,您不应该想要将数据从控制器发送到另一个控制器.我想不出任何需要的情况.


但是,如果它是绝对需要的,那么你可以简单地redirect用来重定向到另一个控制器.

就像是:

// some first_cont.php code here
redirect('/second_cont/valuereciever/value1')


// some second_cont.php code here
public function valureciever($value){
    echo $value; // will output value1
}
Run Code Online (Sandbox Code Playgroud)