Voici mon modèle, ce qu'il fait est un message particulier d'un utilisateur. Chaque message peut également avoir des commentaires, qui sont stockés dans un tableau appelé comments
. J'ai tout fonctionne et je suis en mesure d'afficher le message le long w/les commentaires. Le problème est, chaque commentaire a un post_date
qui s'affiche lorsque le commentaire a été fait. J'ai besoin d'appeler la fonction qui "convertit" la date en quelque chose comme "il y a 3 semaines". La méthode TimeAgo
se trouve dans ma page user_model.php
. L'extrait montre une variable appelée data
qui est en fait pour la publication, le commentaire est intégré à l'intérieur du tableau et je le fais en boucle à mon avis. Donc la question est, est-ce qu'il ya une meilleure façon de gérer cela ou dois-je appeler la méthode TimeAgo
à partir de la page d'affichage? Remarque: J'utilise mongodb mais cela ne devrait pas avoir d'importance si c'est mongodb ou mysql. Même chose ...Codeigniter: Appeler une méthode à partir d'une vue
user_model.php
$query = array("_id" => new MongoId($plan_id), "username" => $username);
$fields = array("plan_title", "comments", "post_date");
$data = $collection_plans->findOne($query, $fields);
$data['date'] = self::TimeAgo($data['post_date']->sec);
$data['username'] = $username;
return $data;
Correct, mais à des fins de «meilleure pratique», on ne devrait pas appeler une méthode depuis une vue? Je veux dire que je m'en fous mais j'étais curieux. :) – luckytaxi
Vous ne devriez pas appeler une méthode de contrôleur à partir d'une vue, mais les aides correspondent bien à la facture. Vous pouvez également effectuer une mise en forme de champ dans MySQL ou dans une couche de préprocesseur exécutée dans votre contrôleur. –