0
我正在編寫一個功能來編輯表中的所有項目。編輯所有功能不起作用 - CakePHP
這裏是我的控制器我的編輯操作:
public function editAll()
{
$this->set('isEditAllValid', false);
$this->set('editAllValidationErrors', false);
if ($this->request->is('post'))
{
$this->LocalClock->table = 'local_clocks';
$this->LocalClock->getDataSource()->tableFields['local_clocks'] = array("id", "name", "auto_offset", "utc_offset_sec", "in_month", "in_week", "in_day", "in_hour", "out_month", "out_week", "out_day", "out_hour", "offset_sec");
$this->set('localClocksEntries', $this->LocalClock->find('all'));
if ($this->LocalClock->save($this->request->data))
{
foreach($localClocksEntries as $LocalClock)
{
$this->set('LocalClock', $this->request->data);
$this->LocalClock->save($LocalClock);
$this->set('isEditAllValid', true);
$this->set('editAllValidationErrors', false);
}
}
else
{
$this->set('isEditAllValid', false);
$this->set('editAllValidationErrors', true);
}
}
}
我在做什麼的代碼,設置一些布爾變量爲假(驗證的東西),然後如果動作後搶地方計時錶並將其插入到變量中進行存儲。然後遍歷該變量並保存發佈到表中每個項目的數據。
我不知道爲什麼,但我試圖編輯所有時會出現2錯誤。
通知(8):未定義變量:localClocksEntries [APP /控制器/ LocalClocksController.php,線158]
警告(2):提供的foreach無效的參數()[APP /控制器/ LocalClocksController.php,行158]
基本上我只想循環表中的每一行,並將內容更改爲用戶在窗體中輸入的內容。
我做了改變,我不明白這些錯誤。但是,當試圖保存它時,最終會向表中添加一個新項目,而不是編輯現有項目。有任何想法嗎? – RXC
需要爲循環中的每個迭代設置主鍵(id)。如果沒有指定ID,cake會創建一個新行,而不是編輯一個。 – Hoff
@Hoff - 我得到它的工作,感謝您的幫助。 我剛剛添加這兩行來解決這個問題,它工作。 '$ this-> LocalClock-> id = $ LocalClock ['LocalClock'] ['id']; $ this-> LocalClock-> save($ this-> request-> data);' – RXC