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

时间:2012-05-04 03:30:50

标签: php codeigniter

我正在使用CodeIgniter,我有两个不同的控制器 - login.php和site.php

在login.php中

function credentials(){
    $user = $this->input->post('username');
    // there is some code here
}

在site.php中,我有 function members_area()我需要将变量$ user从login.php传递给site.php。我该怎么做?

由于

4 个答案:

答案 0 :(得分:2)

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

$this->sessions->set_userdata('user_id',$user_id);
redirect('site/members_area');

然后在您的Site控制器中,从DB中检索该用户的数据。

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

您可以从DB获得所需的数据。

答案 1 :(得分:0)

只需重定向到site / members_area / $ user即可 你将在函数members_area($ user)

中获得$ user参数

答案 2 :(得分:0)

原来,控制器用于控制发送到视图的内容。如果设计是正确的,那么你真的不应该在两个控制器之间发送数据。

我发送了插入用户名的值到会话中。

所以,在login.php中

$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

答案 3 :(得分:0)

如果你想在两个控制器中使用一些常用功能将它放在辅助文件中

http://ellislab.com/forums/viewthread/55212/