Bonjour, je suis en train de développer un site avec CakePHP, j'ai un système d'administration qui permet l'édition et l'ajout d'article, mais j'ai un problème au niveau de l'édition.
Quand un administrateur édite un article, au lieu qui l'article se modifie au niveau de la base de donnée, l'article fait un INSERT et non un UPDATE.

Voici mon ActualitesController.php

<?php
class ActualitesController extends AppController{
function admin_edit($id=null){
    if($this->request->is('put') || $this->request->is('post')){
      if($this->Actualite->save($this->request->data)){
        $this->Session->setFlash("L'article a bien été enregistré");
        $this->redirect(array('action'=>'index'));
      }
    }else if($id){
    $this->Actualite->id = $id;
    $this->request->data = $this->Actualite->read();
    }
  }
}
?>

Si quelqu'un peut m'aider, je le remercie.
Merci d'avoir pris le temps de lire mon message.
Merci, au revoir.

3 réponses


Lartak
Réponse acceptée

Bonjour.
Il faudrait peut-être tout simplement que tu fasse un

$this->Actualite->create($this->request->data());
$this->Actualite->save();

Ensuite, est-ce que tu as mis un champ pour l'ID dans ton formulaire, qui se remplirait lorsque l'ID est définie ?
Ce qui permettrait tout simplement de faire un update au lieu d'une insertion lorsque c'est une modification.

Merci beaucoup pour votre réponse Lartak11, j'avais tout simplement oublié de mettre un champs qui se remplie avec l'ID.
Encore merci pour votre réponse.

De rien, avec plaisir. ;)