Каков метод отправки текущей временной метки непосредственно на INSERT
или UPDATE
? Если бы я работал с обычным SQL, я бы использовал функцию NOW()
для конкретного поля SQL при отправке. Как мне сделать это с помощью CakePHP?
$this->Model->save($this->data)
В CakePHP вы можете включить функцию NOW()
DboSource::expression
с помощью DboSource::expression
$this->data['SomeModel']['your_datetime_field'] = DboSource::expression('NOW()'); $this->Model->save($this->data);
Это предпочтительный способ включения функций MySQL в ваши сэйвы.
если вы добавите созданные и измененные столбцы в свою таблицу, они будут автоматически заполнены текущей меткой времени. Если случай отличается – то есть вы хотите заполнить поле, которое позже вы хотите изменить, возможно, лучше использовать решение edorian.
Вы можете установить поле timestamp для автоматической инициализации и автоматического обновления
timestampfield TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Это может показаться тривиальным для опытных пользователей, но для начинающих в целом полезно также указать код использования:
App::uses('DboSource', 'Model/DataSource');
, который должен быть добавлен в голову источника (было бы лучше, как комментарий, но не могу комментировать) 🙂