Codeigniter: Calling a method from a view
Here's my model, what it does is pulls a particular post from a user. Each post may also have comme开发者_开发百科nts, which are stored in an array called comments
. I have everything working and I'm able to display the post along w/ the comments. The issue is, each comment has a post_date
that displays when the comment was made. I need to call the function that "converts" the date into something like "3 weeks ago." The method TimeAgo
is located in my user_model.php
page. The excerpt shows a variable called data
that's actually for the post, the comment is embedded inside the array and I loop through that in my view.
So the question is, is there a better way of handling this or do I have to call the TimeAgo
method from within the view page?
Note, I'm using mongodb but it shouldn't matter if it's mongodb or mysql. Same thing ...
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;
If my understanding is correct I'd put the TimeAgo method inside a library or helper, then (auto)load whenever necessary and process the date before passing it to the view from within the controller.
this would allow you to access that method from within another model if required, or indeed any other part of your CI app, rather than from just within user_model.php
You call the model method from the controller and put it into a variable. You then pass the var to the view.
精彩评论