Problème de mise à jour d'une donée

Par lakamark, il y a 12 ans


Bonjour,
Je me suis fait un petit système de spam et de déblocage des commentaires. Si un commentaire à le champ "spam" à 1 il ne s'affichera tant que je n'est pas approuvé que ce n'est pas un commentaire indésirable. Quand je clique sur le lien il refuse de modifier le champ "spam" de l'id qui est passé en paramètre.

public function admin_unblock($id){
                // On récupère l'id du commentaire qui à le champ "spam" à 1
        $comment = $this->Comment->find("first",array(
            'conditions' => array('Comment.spam' => 1, 'Comment.id'=>$id),
            'fields' => array('id')
        ));
                // On vérifier la requête
        if (empty($comment)) {
            throw new NotFoundException("Désolé, il y a acun commentaire qui corresponde à cette ID");  
        }
                // On modifie le champ "spam" de l'id du commentaire afin que celui passe de 1 à 0
        $this->Session->setFlash("Le commentaire a été accepté  .",'notif');
        $this->Comment->save(array(
            'Comment.id' => $comment'Comment']'id'],
            'Comment.spam' => 0
        ));
                // On retourne à la page précédente avec un message de confirmation.
        return $this->redirect($this->referer());
}

Merci de votre aide en avance,

2 réponses

satchette, il y a 12 ans

Je pense que ton tableau passé en argument de la fonction save() n'est pas au bon format.
Il devrait plutôt ressembler à ceci :

$this->Comment->save(array(
    'Comment' => array(
        'id' => $comment'Comment']'id'],
        'spam' => 0
    )
));

Tu peux aussi faire :

$this->Comment->id = $id;
$this->Comment->saveField('spam', 0);
lakamark, il y a 12 ans

Merci satchette