這是我的模型,它所做的是從用戶拉特定的帖子。每篇文章也可能有評論,這些評論存儲在名爲comments
的數組中。我有一切工作,我可以顯示該帖子與評論。問題是,每個評論都有一個post_date
,當評論發佈時顯示。我需要調用將日期「轉換」爲「3周前」的功能。方法TimeAgo
位於我的user_model.php
頁面。摘錄顯示了一個名爲data
的變量,這個變量實際上是針對帖子的,註釋嵌入在數組中,並且在我的視圖中循環顯示。Codeigniter:從視圖中調用方法
所以問題是,有沒有更好的方法來處理這個問題,還是我必須從查看頁面調用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;
正確,但讓我們說「最佳實踐」的目的,不應該從視圖內調用方法?我的意思是我可以少管,但我很好奇。 :) – luckytaxi 2010-11-19 21:35:46
你不應該從視圖中調用控制器方法,但傭工很適合這個賬單。你也可以在MySQL中做一些字段格式化,或者在你的控制器中運行一個預處理器層。 – 2010-11-20 05:20:21