Envoi commentaire

Par Digikube, il y a 14 ans


Bonjour à tous, J'ai crée un controller PostsController et un CommentsController l'un qui soccupe des cillets de mon blog l'autre des commentaires. J'ai lié mes 2 models avec $hasMany et $belongsTo et j'ai 2 soucis : Je ne sais pas comment faire pour récupérer le nombre de commentaires par post.** J'aimerais qu'un visiteur puisse ajouter un commentaire depuis le controller Post et l'action View sachant que j'ai crée un controller Comments et l'action Add.** Merci d'avance à tous ceux qui m'aideront.

11 réponses

lepetitnico, il y a 14 ans

J'ai déjà réalisé ce que tu souhaites faire en faite, il faut déclarer un formulaire sur le modèle comment dans ta vue.

Digikube, il y a 14 ans

Et comment déclarer mon formulaire sur le modèle dans ma vue ?

Hotgeart, il y a 14 ans

Je suis encore une brêle en cake2 mais voila comment je ferrai:
Pour compter un find count avec la condition que post_id = $id ou id=$id. Je sais pas faut test.
Du genre: $this->Comment->find('count', array('conditions' => array('post_id' => $id)));
Pour ajouter ta function de add() de ton controller comment tu dois charger le model comment dans post avec un truc du genre $this->loadModel('Comment');.

voila une piste ;) .

lepetitnico, il y a 14 ans
<?php echo $this->Form->create('Comments',array('action'=>'add')); ?>

Le premier paramètre indique le modèle à utiliser, puis dans le array tu indique l'action.

Digikube, il y a 14 ans

Hé hé c'est ça qu'il me fallait !

lepetitnico, il y a 14 ans

Pas de problème bon courage !!

Digikube, il y a 14 ans

Il me faut une dernière chose comment je peux récupérer l'id du post dans le formulaire ?

lepetitnico, il y a 14 ans

normalement elle est fournit avec, après c'est dans $this->request->data, fait un debug et tu le verra sans doute, si il n'y ai pas, rajoute dans ton modèle de formulaire un champ post_id et il te le mettra automatiquement, tu n'auras plus qu'a compléter ta vue.

Digikube, il y a 14 ans

Justement j'ai un champ post_id en hidden mais il est vide quand je fait un debug de request->data le post_id est null...

lepetitnico, il y a 14 ans

Dans ce cas, remplit le avec la valeur du post actuel, je crois que c'est comme ceci :

<?php echo $this->Form->input('post_id',array('type'=>'hidden','value'=>$post'Post']'id'])); ?>
Digikube, il y a 14 ans

Ça marche un grand merci ;)