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

问题描述 投票:0回答:2

我有

Session::instance()->get('orders')
,它是一些数组的数组:

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

但是如果我用这个

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

这将删除第一个订单(id 1、id 2)。

如何将数据数组添加但不擦除到名为“订单”的会话数组?

array_push()
还是其他?

php session kohana
2个回答
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
投票

对于我来说,我认为最好的方法是:

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

一些代码...

public function after() {
...
Session::instance()->set('key', $this->variable, Date::MINUTE);
...
}
© www.soinside.com 2019 - 2024. All rights reserved.