如何在cakephp中保存数据库中的当前时间戳?

时间:2016-07-18 05:38:50

标签: mysql cakephp

我想在cakephp中为每个保存在数据库中的记录保存当前时间戳。所以我的数据库表中有一个字段,其类型为TIMESTAMP,其默认值为CURRENT_TIMESTAMP。但是当我想保存数据时它不起作用。

1 个答案:

答案 0 :(得分:0)

来自版本2.x的Documentation

  

使用创建和修改通过定义创建和/或修改的字段   在您的数据库表中作为datetime字段(默认为null),CakePHP将   识别这些字段并在每次自动填充它们   记录被创建或保存到数据库中(除非数据是   已保存已包含这些字段的值。)

     

创建和修改的字段将设置为当前日期和   最初添加记录的时间。修改后的字段将是   每当现有记录时,使用当前日期和时间进行更新   保存。

     

如果您在$ this->数据中创建或修改了数据(例如来自a   在Model :: save()之前的Model :: read或Model :: set)然后是值   取自$ this->数据,而不是自动更新。如果你不这样做   想要你可以使用unset($ this-> data [' Model'] [' modified'])等。   或者,您可以覆盖Model :: save()以始终执行此操作   你:

class AppModel extends Model {

public function save($data = null, $validate = true, $fieldList = array()) {
    // Clear modified field value before each save
    $this->set($data);
    if (isset($this->data[$this->alias]['modified'])) {
        unset($this->data[$this->alias]['modified']);
    }
    return parent::save($this->data, $validate, $fieldList);
}
}
  

如果使用fieldList保存数据并创建和修改数据   字段不在白名单中,字段将继续   自动分配值。当包含在   fieldList,创建和修改的字段与任何其他字段一样。