这是我的模型,它的作用是从用户那里提取特定帖子。每个帖子也可能有注释,这些注释存储在名为comments
的数组中。我有一切工作,我能够随着评论显示帖子。问题是,每个评论都有post_date
,在评论发布时显示。我需要调用将日期“转换”为“3周前”的功能。方法TimeAgo
位于我的user_model.php
页面中。摘录显示了一个名为data
的变量,它实际上用于帖子,注释嵌入在数组中,我在视图中循环显示。
所以问题是,有没有更好的方法来处理这个问题,还是我必须在视图页面中调用TimeAgo
方法?
注意,我正在使用mongodb,但如果它是mongodb或mysql则无关紧要。同样的事情......
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;
答案 0 :(得分:2)
如果我的理解是正确的,我会将TimeAgo方法放在库或帮助器中,然后在必要时加载(自动)并处理日期,然后再将其传递给控制器内的视图。
这将允许您在需要时从其他模型中访问该方法,或者实际上是CI应用程序的任何其他部分,而不是仅在 user_model.php
中答案 1 :(得分:1)
您可以从控制器调用模型方法并将其放入变量中。然后将var传递给视图。