Hello à tous

je me prends le chou depuis un bon moment pour sauver des données dans deux tables, Google, tuto, rein n'y fait ou j'ai pas trouver les bonnes informations.

En gros, je veux sauver ces données

array(
    'Basket' => array(
        'method' => 'bill',
        'company' => 'Hello Web!',
        'lastname' => 'Lastname',
        'firstname' => 'Firstname',
        'street' => 'Rue',
        'streetnb' => '78',
        'pobox' => '142',
        'cp' => '1202',
        'city' => 'Geneva',
        'state' => 'Genava',
        'country' => 'Switzerland',
        'user_id' => '5',
        'created' => '2013-12-23 11:10:12',
        'step' => 'order',
        'id' => '42'
    )
)

Dans ma table baskets.
Pas de problème, pour ca j'y arrive avec ce code

// Save basket if the request contain step== order
        if(($this->request->is('put') || $this->request->is('post')) AND $this->request->data'Basket']'step']=="order" ){
            // If no method has been selected
            if(empty($this->request->data'Basket']'method'])){
                $this->Session->setFlash("You have to choose a paiement method","notif",array('type'=>'danger'));

            }elseif($this->Basket->save($this->request->data)){

                debug($this->Basket->id);
                // I update the array to have the value of basket_id field
                foreach($d'basketItems'] as $k => $v ){
                    $basketItems$k]'basket_id'] = $this->Basket->id;

                }
                // Il faut maintenant enregitrer les articles dans la table basketsitem
                // COMMENT MAINTENANT SAUVER TOUS LES ITEMS QUI SONT DANS LA VARIABLE $basketItems, sauver dans la table basketsitems???

                $this->Session->setFlash("The content has been saved","notif");

                // Envoi des confirmations d'enregistrement
                //$this->redirect(array('action'=>'index'));
            }
        }

maintenant, je dois remplir la table 'basketsitems' avec ces données et je n'arrive pas a le faire

array(
    (int) 0 => array(
        'qt' => '1',
        'basket_id' => '49',
        'name' => 'Montant auxiliaire de badminton réglable',
        'id' => '37',
        'price' => '225',
        'noarticle' => '01053',
        'content' => '<p>de 140 à 250 cm pour soutenir des longs filets de badminton ou de volleyball.</p>',
        'sgattribut' => '',
        'sgcatpage' => '114',
        'sgimagel' => '01053_2.jpg'
    ),
    (int) 1 => array(
        'qt' => '1',
        'basket_id' => '49',
        'name' => 'Montant auxiliaire de badminton fixe',
        'id' => '38',
        'price' => '85',
        'noarticle' => '01052',
        'content' => '<p>pour soutenir des longs filets de badminton.</p>',
        'sgattribut' => '155cm',
        'sgcatpage' => '114',
        'sgimagel' => '01052_2.jpg'
    )
)

Pourriez-vous m'aider ou m'orienter?

Ca serait trop cool!!!!

J'ai regardé plusieurs truc comme saveAll, saveAsscouated().
Je voulais aussi utiliser la function afterSave, depuis mon mdèle, mais je n'ai pas trouver comment passer ma variable/array $basketItems dans la function afterSave().

Voilà voili. Merci!!

3 réponses


Bonjour,
je pence qu'il faut faire plusieurs save en parcourant ton array..

<?
foreach ($arrays as $k => $array) {
    $this->Model->save($array);
}
?>

Mail pour la validation, sa me semble difficile ^^ .

Hello
J'ai reussi comme-ceci

if($this->Basket->Basketsitem->saveAll($basketItems)){}

Salut PIERROTO10 pense à mettre en résolu le sujet.
Joyeux Noel