Codeigniter: вызов метода из представления - PullRequest
1 голос
/ 19 ноября 2010

Вот моя модель, что он делает, извлекает конкретный пост от пользователя.Каждый пост также может иметь комментарии, которые хранятся в массиве с именем 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 ]

2 голосов
/ 19 ноября 2010

Если мое понимание правильное, я бы поместил метод TimeAgo в библиотеку или помощник, затем (автоматически) загрузите при необходимости и обработайте дату, прежде чем передать ее представлению из контроллера.позволит вам получить доступ к этому методу из другой модели, если требуется, или из любой другой части вашего CI-приложения, а не из user_model.php

1 голос
/ 20 ноября 2010

Вы вызываете метод модели из контроллера и помещаете его в переменную.Затем вы передаете переменную в представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...