CakePHP: автоматическая установка дат создания и обновления модели
Есть ли способ настроить модели CakePHP для автоматической установки временных меток, таких как created_on и updated_on, при сохранении объекта?
Я думаю об эквиваленте параметров поля даты и времени Django auto_now и auto_now_add.
Я слышал, что в некоторых системах это спорная практика, но я все равно хочу это сделать.
Если вы не можете сделать это, обычно ли люди устанавливают временные метки в Обработчики beforeSave(), возможно, проверив, содержат ли данные модели поле идентификатора, и соответствующим образом настроив данные создания?
Спасибо и приношу извинения, если я пропустил соответствующую часть в документах.
3 answers
Да, CakePHP делает это автоматически для полей created
и modified
.
В MySQL тип этих полей должен быть DATETIME (или ДАТА) и иметь значение NULL.
Если вы назовете свои поля created
и modified
и сделаете их типа datetime
, Cake обработает все остальное. http://book.cakephp.org/complete/1000/Models#created-and-modified-1015
На самом деле, использовать "сейчас()" для обновления даты и времени в mysql просто и легко.
$updateField = array('last_login'=>'now()');