Session :: instance()并将数组推送到会话数组

时间:2010-07-31 16:28:12

标签: session kohana

例如我有Session :: instance() - > get('orders')这是一些数组的数组:

$ first = array('id'= 1,'name'=>'first','price'=> 100); $ second = array('id'=> 2,'name'=>'second','price'=> 200); $ _SESSION ['orders'] =数组($ first,$ second);

但如果我使用这个

Session :: instance() - > set('orders',array(array('id'=> 3,'name'=>'third','price'=> 300))) ;

这将删除第一个订单(id 1,id 2)。 那么我怎样才能将ERASE数据数组添加到名为'orders'的会话数组中? array_push还是别的什么?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

至于我,我认为最好的方式:

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

一些代码......

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