Bonjour à tous,

Je compte faire un compteur de lecture (chargement) de mes articles.
Je souhaites donc savoir quel serait la meilleur méthode (la plus propre) pour faire ça.

Je dois faire ça en Event ou je peux faire l'enregistrement dans mon Controller qui gère les articles à la fonction qui renvoie à la vue le contenu de mon article?

Merci d'avance pour votre expertise.

hachbé

3 réponses


mespeche
Réponse acceptée

Passer par une méthode d'un model rajoutera une couche supplémentaire à ton traitement.
Si ton objectif est simplement d'incrémenter un champ du type "nbViews" fait le directement sur la méthode de lecture d'un article de ton controller en faisant comme ceci :

$this->Post->updateAll(array('Post.nbViews' => 'Post.nbViews+1'), array('Post.id' => $id));

Bon courage ;)

Bonjour,

Je te conseillerai de faire une méthode "Article::addView($id)" dans le modèle. Cette méthode incrémente le compteur de visites de l'article passé en paramètre.
Ensuite dans le controller tu fais un appel à "$this->Article->addView($article'Article']'id'])".

hachbe
Auteur

Merci à vous deux pour votre réponse et aide.

J'ai suivi la méthode de mespeche qui me semblait effectivement plus pertinent.
Merci également pour vos exemples de code.

hachbé