0
Cake完全不熟悉。CakePHP:hasOne相關表在更新時保存多個條目
我有這個名爲內容的表和另一個名爲ContentMeta(通過content_id相關)。內容中的每個條目都有相應的ContentMeta。
當我添加新的內容,這是我用一個新的條目添加到ContentMeta代碼:
if(!empty($this->data)) {
// Save Content
$this->Content->create();
$content = $this->Content->save($this->data);
// Save Meta
if(!empty($content)) {
$this->data['ContentMeta']['content_id'] = $this->Content->id;
$this->Content->ContentMeta->save($this->data);
$this->Session->setFlash('Content has been saved.');
$this->redirect(array('action' => 'edit', $this->Content->id));
}
}
這工作得很好,並添加一個新條目的內容和一個ContentMeta。
當談到更新數據(編輯模式)時,我遇到了一個小問題。內容條目的更新順利完成,但是在ContentMeta表中,每次更新都會創建一個新條目。
下面是更新的代碼:
$this->Content->id = $id;
// Update Content
$content = $this->Content->save($this->data);
// Update Meta
if(!empty($content)) {
//Debugger::dump(print_r($this->data,true));
$this->data['ContentMeta']['content_id'] = $this->Content->id;
$this->Content->ContentMeta->save($this->data);
$this->Session->setFlash('Content has been updated.');
$this->redirect(array('action' => 'edit', $this->Content->id));
}
我敢肯定,這是在這個塊中的一些邏輯上的錯誤是導致這種情況發生。任何人都可以給我一個想法,我錯了嗎?
感謝, 平方公尺Ë
完美。這樣做的工作和saveAll幫助減少了大量的代碼。我早些時候遇到過saveAll,但是直到我手動對各個步驟進行了試驗之後,才避免使用它。謝謝尼克:) – 2010-11-19 02:35:52
所有saveAll不會調用save()幾次(以及__save()),但它清理代碼 – dogmatic69 2010-11-21 23:46:38