Php 在两个控制器MVC之间传递数据

Php 在两个控制器MVC之间传递数据,php,codeigniter,Php,Codeigniter,我使用的是CodeIgniter,我有两个不同的控制器——login.php和site.php 在login.php中 function credentials(){ $user = $this->input->post('username'); // there is some code here } $this->session->set_userdata($data); 在site.php中,我有函数成员\u area()我需要将变量$user从

我使用的是CodeIgniter,我有两个不同的控制器——login.php和site.php

在login.php中

function credentials(){
    $user = $this->input->post('username');
    // there is some code here
}
$this->session->set_userdata($data);
在site.php中,我有函数成员\u area()我需要将变量$user从login.php传递到site.php。我该怎么做


谢谢

只需重定向到站点/members\u区域/$user
在函数members\u区域($user)

中会得到$user参数,结果表明,控制器用于控制发送到视图的内容。如果设计是正确的,就不应该在两个控制器之间发送数据

我将用户名的值插入到会话中

因此,在login.php中

function credentials(){
    $user = $this->input->post('username');
    // there is some code here
}
$this->session->set_userdata($data);
并在site.php中检索该值

$data['userid'] =  $this->session->userdata('username');
$this->load->view('members_area' , $data); //send the info to the controller

如果您在这里谈论的是用户登录。。在
登录
控制器中验证用户凭据。如果是这样,那么您需要设置一个会话变量

$this->sessions->set_userdata('user_id',$user_id);
redirect('site/members_area');
然后在
站点
控制器中,从数据库中检索该用户的数据

$current_user = $this->sessions->userdata('user_id');

您可以从数据库中获取所需的数据。

如果您想在两个控制器中使用一些常用函数,请将其放入一个帮助文件中


谁调用
credential()
方法?如果您坚持使用Codeigniter的MVC风格,您可能不应该在控制器之间共享。考虑使用库或助手处理共享信息。我也做了同样的事情。谢谢