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,
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);