我在CakePHP 2.4.4中有一个遗留应用程序
我添加了一个新的数据库表,并添加了created
和modified
字段,两者都是DATETIME
。数据库是MySQL。
之前我在Cake(2和3)上做了很多工作,并且总是发现这些字段会在创建/修改记录时自动更新。它甚至在Cake 2的文档中提到了这一点:https://book.cakephp.org/2.0/en/models/saving-your-data.html#using-created-and-modified
当我保存或修改记录时,created
(或modified
,如果正在修改)中填充了0000-00-00 00:00:00
为什么会这样?我甚至不知道从哪里开始寻找这个,因为我从来不知道它会发生。
我在控制器或模型中没有做任何事情来“取消设置”这些字段。
我的表结构如下。我也尝试在Null
和NO
上将created
更改为modified
- 结果相同。
mysql> DESCRIBE tags;
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | NULL | |
| created | datetime | YES | | NULL | |
| modified | datetime | YES | | NULL | |
+----------+--------------+------+-----+---------+----------------+
我正在保存编辑的数据,如下所示:
$this->Tag->save( $this->request->data )
如果我var_dump($this->request->data)
,它看起来像这样:
array(2) { ["Save"]=> string(6) "Update" ["Tag"]=> array(2) { ["id"]=> string(1) "2" ["title"]=> string(6) "France" } }
模型(app/Model/Tag.php
) - 尽可能基本:
class Tag extends AppModel {
}