2010-07-31 3 views
0

par exemple j'ai session :: instance() -> get ('ordres') qui est un tableau de quelques tableaux:session :: instance() et pousser les données du tableau à un tableau de la session

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

mais si j'utilise cette

session :: instance() -> set ('commandes', array (array ('id' => 3, 'name' => 'tiers', 'prix' => 300)));

Ceci effacera les premières commandes (ID 1, ID 2). alors comment puis-je AJOUTER mais non EFFACER des tableaux de données à un tableau de sessions nommé 'orders'? array_push ou autre chose?

+0

ici i sulution codé, est-ce bon? http://gist.github.com/502362 – purple

Répondre

3

Modifier, n'a pas vu votre commentaire, c'est parfait.

Explicite.

$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

J'ai également trouvé que nous pouvons initialiser $ _SESSION tableau et l'utiliser comme dans le code php brut.J'ai l'intention de lier Session :: instance() au tableau $ _SESSIOn parce que dans kohana nous ne peut pas manipuler directement avec le tableau $ _SESSION par défaut. – purple

0

Quant à moi, je pense que la meilleure façon:

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

un code ...

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