1
型號,簡稱:
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
定義「不工作」。創建/修改相關的字段沒有問題。這必須是您的應用程序代碼中的內容。發佈「縮寫」代碼無助於追蹤問題。 – burzum
原始方法:'$ this-> id = null'。如果存在'id',Cake將更新該行。否則,它會創建它。 – Eagle
@鷹 - 這不起作用 - 重載東西或其他'沒有效果'。然而,它確實讓我思考空的領域,因此是答案。 – StringsOnFire