Как изменить полученные данные в модели?

#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();