私のモデルは、ユーザーから特定の投稿を取得するものです。各投稿にはコメントがあり、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
あなたはビューからコントローラーメソッドを呼び出すべきではありませんが、ヘルパーは法案をうまく収めます。また、MySQLで、またはコントローラで実行されているプリプロセッサレイヤーでフィールドフォーマットを行うこともできます。 –