2010-07-31 152 views
0

例如我有會話::實例() - >得到(「訂單」),這是一些數組的數組:會話::實例()和陣列數據推送到會話陣列

$第一=陣列('id'= 1,'name'=>'first','price'=> 100); $ second = array('id'=> 2,'name'=>'second','price'=> 200); $ _SESSION ['orders'] = array($ first,$ second);

但是,如果使用本

會話::實例() - >集( '訂單',陣列(陣列( 'ID'=> 3, '名稱'=> '第三', '價格' => 300)));

這會刪除第一個訂單(id 1,id 2)。 所以我怎麼能ADD,但不擦除數據數組到名爲'訂單'的會話數組? array_push或其他東西?

+0

這裏我編碼sulution,豈不是好? http://gist.github.com/502362 – purple 2010-07-31 16:58:27

回答

3

編輯,沒有看到您的評論,它是完美的。

自我解釋。

$session = Session::instance(); 

// Find existing data 
$data = $session->get('orders'); 

// Add new array 
$data[] = array('id' => 3, 'name' => 'new data', 'price' => 300); 

// Resave it 
$session->set('orders', $data); 
+0

我還發現我們可以初始化$ _SESSION數組並將其用作原始php代碼。我的意思是將Session :: instance()鏈接到$ _SESSIOn數組,因爲在kohana中,我們不能直接使用$ _SESSION數組操作。 – purple 2010-07-31 23:25:43

0

就我而言,我認爲最好的辦法:

public function before() { 
... 
$this->variable = Session::instance()->get('key', array()); 
... 
} 

一些代碼...

public function after() { 
... 
Session::instance()->set('key', $this->variable, Date::MINUTE); 
... 
}