Codeigniter:从视图中调用方法

时间:2010-11-19 19:32:24

标签: codeigniter

这是我的模型,它的作用是从用户那里提取特定帖子。每个帖子也可能有注释,这些注释存储在名为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;

2 个答案:

答案 0 :(得分:2)

如果我的理解是正确的,我会将TimeAgo方法放在库或帮助器中,然后在必要时加载(自动)并处理日期,然后再将其传递给控制器​​内的视图。

这将允许您在需要时从其他模型中访问该方法,或者实际上是CI应用程序的任何其他部分,而不是仅在 user_model.php

答案 1 :(得分:1)

您可以从控制器调用模型方法并将其放入变量中。然后将var传递给视图。