Session :: instance () и передать данные массива в массив сессии - PullRequest
0 голосов
/ 31 июля 2010

например, у меня есть 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 ]

3 голосов
/ 01 августа 2010

Редактировать , не видел ваш комментарий, он идеален.

Понятно.

$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 голосов
/ 10 сентября 2014

Что касается меня, я думаю, что лучше всего:

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

некоторый код ...

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