Отправка текущей метки времени в CakePHP - PullRequest
15 голосов
/ 29 сентября 2010

Каков метод для отправки текущей отметки времени непосредственно на INSERT или UPDATE? Если бы я использовал обычный SQL, я бы использовал функцию NOW() для конкретного поля SQL при отправке. Как бы я сделал это с CakePHP?

$this->Model->save($this->data)

Ответы [ 3 ]

21 голосов
/ 29 сентября 2010

В CakePHP вы можете включить функцию NOW() без экранирования, используя DboSource::expression

$this->data['SomeModel']['your_datetime_field'] = DboSource::expression('NOW()');
$this->Model->save($this->data);

Это предпочтительный способ включения функций MySQL в ваши сохранения.

http://api.cakephp.org/2.3/class-DboSource.html#_expression

7 голосов
/ 29 сентября 2010

если вы добавите созданные и измененные столбцы в таблицу, они будут автоматически заполнены текущей отметкой времени.Если дело обстоит иначе - то есть вы хотите заполнить поле, которое позже захотите изменить, возможно, лучше использовать решение редактора.

0 голосов
/ 29 сентября 2010

В поле отметки времени можно установить автоматическую инициализацию и автоматическое обновление

timestampfield TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

...