有关如何调试未更新的已修改字段的任何想法?创建的字段工作正常。
我不确定您需要查看哪些代码,请告诉我们!
由于
答案 0 :(得分:7)
如同Anh Pham所说,modified
和created
字段必须为DATETIME
,并且还需要默认为NULL
,explained in the CakePHP book about the subject。< / p>
答案 1 :(得分:5)
您应该尝试检查您是否使用
$this->ModelName->read(NULL, $id);
在保存数据之前,如果您认为没有 - 请仔细检查
答案 2 :(得分:5)
最有可能的是你要覆盖该字段,在保存字段之前取消设置该字段,如下所示:
unset($user['User']['modified']);
现在你可以保存它:
$this->User->save($user);
答案 3 :(得分:1)
该字段应使用'datetime'类型命名为'modified'。 Cake应该自动为您更新字段。如果您想检查,只需查询它,或查看数据库。
答案 4 :(得分:0)
如果使用手动更新查询,也可能会出现此问题。只有在使用Cake自己的函数时才会更新该字段。
答案 5 :(得分:0)
在AppModel.php中,只需编写以下代码即可。
public function beforeSave($options = array()) {
parent::beforeSave();
if (isset($this->data[$this->alias]['modified'])) {
unset($this->data[$this->alias]['modified']);
}
if (isset($this->data[$this->alias]['created'])) {
unset($this->data[$this->alias]['created']);
}
}
这适用于所有型号。但我们也可以为个别MODELS做到这一点。
由于我们已使用parent::beforeSave();
作为第一行,因此可以在每个单独的模型中覆盖。
感谢继承。
答案 6 :(得分:0)
我今天遇到了同样的问题,发现from itertools import chain
active = list(chain(queryset1, queryset2))
字段只有在进行了任何更改后才会更新,否则不会触及该字段。