Bonjour à tous.
En effectuant ce code je me rend compte que cake effectue des updates au lieu d'insert into le but de ce controller étant d'ajouter les données d'un fichier XML dans ma BDD.
    //Load du model Serie et récupération du dernier ID de la table Series
    $this->loadModel('Serie');
    $last = $this->Series->getLastInsertID();

    //Load le model Episode pour l'ajout et set des champsBDD>XML
    $this->loadModel('Episode');
    $champsep= array('id_episode'=>'id',
                            'combined_episodenumber'=>'Combined_episodenumber',
                            'combined_season'=>'Combined_season',
                            'episodename'=>'EpisodeName',
                            'episodenumber'=>'EpisodeNumber',
                            'firstaired'=>'FirstAired',
                            'overview'=>'Overview',
                            'rating'=>'Rating',
                            'ratingcount'=>'RatingCount',
                            'filename'=>'filename');

    $this->Episode->set(array(
                'fk_series' => ''.$last.''
            ));

    for ($i=0; $i<count($parsed_xml'Data']'Episode']);$i++)
    {
        foreach ($champsep as $key => $value){                  
                $this->Episode->set($key, $parsed_xml'Data']'Episode']$i]$value]);
            }

    $this->Episode->save();

    }
En essayant avec un saveAll() j'obtiens une erreur de ce type :
 Warning (2): array_keys() [function.array-keys]: The first argument should be an array [CORE/Cake/Model/Model.php, line 1990].
En attente de votre réponse, merci.

4 réponses


xtrembaker
Réponse acceptée

Bonjour,

Fais un

$this->Episode->create()

après ton

$this->Episode->save()

.

Happy Baking !

Salut,
Essai de creuser avec la méthode create():

//Création: id n'est pas défini ou est null
$this->Recette-><strong>create()</strong>;
$this->Recette->save($this->data);
//Mise à jour: id est défini à une valeur numérique
$this->Recette->id = 2;
$this->Recette->save($this->data);

Sauvegarder vos données

zalexki
Auteur

Salut, merci de ta réponse, j'ai oublier de précisé que je suis sur la 2.0 cela change t-il quelque chose ?
Merci.

zalexki
Auteur

Merci xtrembaker ca fonctionne parfaitement.