我剛開始學習代碼點火器。如何將代碼點火器中的變量從一個控制器傳遞給另一個控制器
我想知道如何將一個控制器(first_cont.php)的變量傳遞給其他控制器(second_cont.php)?
任何幫助,將不勝感激。
感謝提前:)
我剛開始學習代碼點火器。如何將代碼點火器中的變量從一個控制器傳遞給另一個控制器
我想知道如何將一個控制器(first_cont.php)的變量傳遞給其他控制器(second_cont.php)?
任何幫助,將不勝感激。
感謝提前:)
這將視情況而定。如果你想保留一段時間的數據,那麼會話數據就是要走的路。但是,如果您只需要使用一次,則閃存數據可能更合適。
第一步是初始化會話庫:,
$this->session->set_flashdata('item', $myVar);
最後,在第二控制器,取數據:
$this->load->library('session');
然後存儲在閃存數據的信息
$myVar = $this->session->flashdata('item');
顯然這意味着你不得不再次初始化會話庫從第二個控制器,或創建您自己的基礎控制器加載會話庫,並讓你的兩個控制器繼承該控制器。
我覺得笨,你不能傳遞變量,兩個不同的控制器之間。一個明顯的機制是使用會話數據。
我同意這一觀點的變量傳遞值。 CI具有通過URI訪問控制器的特定路由。 會話數據會在這裏有用 $ this-> sessions-> set_userdata('data',$ data); redirect('second_cont.php'); – kjurkovic
好吧,這裏是一些關於MVC最容易報價:
A控制器是拍攝輸入,一個模型是你的邏輯,並且,視圖是用於顯示。
現在,嚴格來說,你不應該想要從控制器發送數據到另一個。我想不出任何需要的情況。
但是,如果是絕對需要它,那麼你可以簡單地使用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
}
在Codeigniter中有許多方法可以將值從一個控制器傳遞到其他控制器。
您可以使用codeigniter Session將數據從一個控制器傳遞到另一個控制器。
對於您必須首先包括會議
$this->load->library('session');
那麼你可以設置使用變量名的閃存數據值庫。
// Set flash data
$this->session->set_flashdata('variable_name', 'Value');
他們,你可以得到你想要通過使用笨會議flashdata
// Get flash data
$this->session->flashdata('variable_name');
第二個選項笨讓你的URL從控制器的名稱,方法名稱和值,然後控制研究重定向值您可以在另一個控制器中獲取該值。
// Passing the value
redirect('/another_controller_name/method_name/variable');
然後你就可以在另一個控制器中獲得的價值
public function method_name($variable)
{
echo $variable;
}
這一切....
如果在第一控制器使用會話,然後在第一個控制器不取消設置該會話,而是存儲您想要的值在其他控制器中,例如,
$sess_array = array('value_name1' => 'value1', 'value_name2' => 'value2');
$this->session->set_userdata('session_name', $sess_array);
N的其他控制器重新加載此會話
$session_data= $this->session->userdata('session_name');
$any_var_name = $session_data['value1'];
$any_var_name = $session_data['value2'];
這是怎麼了,你可以從一個控制器到另一個....
存儲在會話 –