2015-04-22 87 views
0

我是Code Igniter的新手。我試圖從一個控制器傳遞數組到另一個控制器,然後在視圖中顯示這些值。但它不起作用。將數組值傳遞給控制器​​並在視圖中顯示在Codeigniter中

控制器1號

if($query) 
{ 
    $data = array(
     'user' => $this->input->post('email'), 
     'is_logged_in' => true 
    ); 

    $this->session->set_userdata($data); 
    redirect('site/member_area',$data); 
} 
else { 
    $this->index(); 
} 

控制器2號具有member_area()函數

function member_area() 
{ 
    $data['title'] = 'Dashboard'; 
    $data['main_content'] = 'members_area'; 
    $this->load->view('includes/main_template',$data); 
} 

並鑑於我試圖顯示在顯示控制器的一個接收到的使用「用戶」名此聲明在視圖

echo $user; 

但它不顯示用戶名,例如$ data ['user']。該視圖僅具有從控制器編號2收到的值

+0

您需要將數據設置爲全局變量 – madalinivascu

+0

Vicky和Narendra Sisodia是正確的。一旦您將其設置爲會話數據,您就可以在任何控制器或功能中訪問該會話數據。 –

回答

1

您需要在代碼中進行一些更改。因爲您正在將會話值作爲簡單數組調用。這會爲你工作..

控制器1

$data = array(
    'user' => $this->input->post('email'), 
    'is_logged_in' => true 
); 

$this->session->set_userdata('retrieveData',$data); 

和您的視圖中,您可以訪問,使用

$retrieveData = $this->session->userdata('retrieveData'); // will return the array 

$userid = $this->session->userdata['retrieveData']['user'];// retrieving single element from session 
echo $userid; 
2

你可以定義你的會話變量作爲

$this->session->set_userdata('mysession',$data); 

並且可以訪問會話中的值作爲

echo $this->session->userdata['mysession']['user'];// your email or username 
相關問題