j'ai mis en place le formulaire pour l'ajout de commentaire d'apres le tuto:
le commentaire s'enregistre mais l'id du post reste à 0..
je tourne le pb dans tout les sens mais je trouve pas
si vous pouvez m'aider... merci
voila le code
le formulaire dans la vue:

<?php
echo $form->create('Comment',array('url'=>array('controller'=>'posts','action'=>'view',$a'Post']'id'])));
echo $form->input('pseudo');
echo $form->input('mail');
echo $form->input('contenu');
echo $form->input('post_id',array('type'=>'hidden','value'=>$a'Post']'id']));
echo $form->end('ajouter'); ?>

la fonction dans le controller:

function view($id) {
        if(!empty($this->data)){
            if($this->Comment->validates($this->data)){
                            $this->Session->setFlash('Votre commentaire a bien été posté');
                            $this->Comment->save($this->data);
            }
            else{
                $this->Session->setFlash('Merci de valider vos champs');
                $this->validateErrors($this->Comment);
            }
        }
        $s=$this->Post->find('first',array(
            'conditions'=>array('Post.id'=>$id)
            ));
        $this->set('a',$s);
    }

et le model:

class comment extends AppModel{

    var $name = 'Comment';
    var $belongsTo='Post';
    var $validate=array(
         'mail'=>'email',
        'pseudo'=>array(
            'alphanumeric'=>array(
                'rule'=>"alphanumeric",
                'message'=>'pseudo non valide'
            ),
            'between'=>array(
                'rule'=>array('between',3,15)
                )

            )
    );

    function beforeSave(){
        App::import('Sanitize');
        $this->data'Comment']'contenu']=Sanitize::html($this->data'Comment']'contenu'],true);
        return true;
    }
}

3 réponses


juju83
Auteur
Réponse acceptée

merci pour ton aide,
je crois que j'ai trouvé mon erreur, une erreur bete de debutante, je n'avais pas defini category_id dans le array fields de paginate
en tout cas désormais tout fonctionne !
merci

Dans ta vue, fait un debug($a); et montre moi ce qu'il te retourne.

Pas de quoi ;) valide ta question qu'elle aille dans les problèmes résolus. Bon courage pour la suite !