在模型中调用 CakePHP $this->create() 会破坏'created'并'modified' $this->save() 的自动字段



Model,缩写:

function doStuff {
    foreach(thing) {
        fields = makeFields()
        saveStuff(fields)
    }
}
function saveStuff (fields = array()) {
    if (a record with field data does not yet exist) {
    $this->save(fields)
}

上面会创建一个新记录,并且对于每个foreach迭代都会更新该记录,因为 Cake 会在内存中"加载"新记录,从而为不应该存在的$this->save()提供id

解决方案$this->create() ,但这会阻止创建和修改的字段工作(数据库条目为零,0000-00-00 00:00:00)。有什么建议吗?我想也许在保存后以另一种方式取消设置数据,但这也会破坏创建/修改的字段吗?

使用 CakePHP 2.4.4

通了。

$this->create()加载一个"空白画布",因此,根据定义,该画布将包括记录中所有可用的字段及其默认值

在数据库中,我将createdmodified字段的默认值设置为 0000-00-00 00:00:00 。 因此,$this->create()使用模型数据中的默认值填充这些字段。要使自动填充正常工作,它们必须为空。我将两者的默认值设置为无,一切都很好。

相关内容

最新更新