Как изменить полученные данные в модели? - PullRequest
0 голосов
/ 03 октября 2011

У меня есть типичная функция в модели, которая получает 'time' из таблицы 'Orders':

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'])); 

не сработает;)

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Идеальное выполнение в виде, это форматирование результата модели для правильного отображения.

$result['time'] = date('H:i', strtotime(result['time'])); 

Произошла синтаксическая ошибка, вы забыли поставить префикс result со знаком доллара.


То, что сказал Зомбор, тоже было важно (я пропустил это)

$ result - это объект-итератор результата базы данных, а не один результат

0 голосов
/ 03 октября 2011

Посмотрите на функцию 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();
...