Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

public function add($model, $id){
            $this->layout = false;

            $function = new Functions();
            $carts = (!empty($this->Session->read('Carts'))) ? $this->Session->read('Carts') : array();
            $d = $this->$model->find('first', array('conditions' => array($model.'.id' => $id)));

            if(!$function->in_array_r('id', $id, $carts)){
                $carts[] = array(
                    'name' => $d[$model]['title'],
                    'id' => $id,
                    'model' => $model,
                    'price' => $d[$model]['price']
                );
            }

            $this->Session->write(array('Carts' => $carts));
            debug($this->Session->read('Carts'));
        }

Ce que j'obtient avec la dernière ligne de débug :

Ce que je veux

Je voudrais ensuite récuperer les données de la session (Carts) dans une autre page.

    public function test(){
            $this->layout = false;
            debug($this->Session->read('Carts'));
        }

Ce que j'obtiens

1 réponse


Bonjour.
Pour information, le composant Session ne s'utilise pas de cette manière pour la méthode write, elle prend en premier argument la clé de la session, qui doit être une chaine de caractères et donc un string, soit dans ton cas Carts, et ensuite sa valeur, soit un string ou un array, ce qui pour ton cas donnerait :

$this->Session->write('Carts', $carts);