#php #model-view-controller #model #kohana
#php #модель-представление-контроллер #Модель #кохана
Вопрос:
У меня есть типичная функция в модели, которая получает «время» из таблицы «Заказы»:
public function get_time() {
$result = array();
$result = DB::select('id', 'time', 'description')->from('orders')->execute();
return $result;
}
Проблема в том, что поле ‘time’ хранится в MySQL в формате (TIME): 'HH:mm:ss'
, пример: 11:45:00.
Но мне не нужны секунды, поэтому я могу сделать: date('H:i', strtotime($time));
делать это в представлении не очень хорошая идея. Мне нужно выполнить это преобразование в модели или контроллере. Конечно:
$result['time'] = date('H:i', strtotime(result['time']));
не будет работать 😉
Ответ №1:
Выполнение этого в представлении идеально, оно форматирует результат модели для правильного отображения.
$result['time'] = date('H:i', strtotime(result['time']));
Существует синтаксическая ошибка, вы забыли добавить префикс result
со знаком доллара.
То, что сказал зомбор, тоже было важно (я пропустил это)
$result — это объект итератора результатов базы данных, а не отдельный результат
Комментарии:
1. Кроме того, $result — это объект итератора результатов базы данных, а не отдельный результат.
Ответ №2:
Взгляните на функцию TIME_FORMAT:
SELECT TIME_FORMAT('11:45:00', '%H:%i')
результат 11:45
. Измените код следующим образом:
$result = DB::select('id', array('TIME_FORMAT("time", '%H:%i')', 'formatted_time'), 'description')->from('orders')->execute();