2011-07-18 78 views
2

我剛剛開始使用Zend Framework,因此可能會出現一個愚蠢的問題。Zend框架更新數據庫中的複選框

我有一個帶有5個複選框的窗體。用戶可以根據需要點擊任意數量的複選框。這被輸入到數據庫中。 (1:n)

這一切工作正常。但現在我已經到了用戶可以編輯帖子的那個部分。顯示的複選框以及曾經活動的複選框。但是,我現在如何更新?

後更新其餘正常工作,收集數據併發送更新:

$this->getDbTable()->update($data, array('post_id = ?' => $id)); 

現在我想更新的複選框,1:N的關係。但是,如果我例如有4個複選框處於活動狀態,但我想只有3個活動狀態更新後,我該怎麼辦?我是否應該首先刪除所有條目,而不是正常插入,還是有一個辦法可以做到嗎?

希望有人能幫忙。謝謝 !

+1

的值,我不認爲你的問題是Zend框架的具體 –

回答

0

假設數據庫中存在的行是您用來指示應該檢查的行,您需要將其刪除,因爲update()函數不會這樣做。

如果刪除/重新插入操作過於昂貴,可能會將檢查值存儲在會話中並執行array_diff($previous_selected, $currently_selected)以獲取要刪除的項目列表。

有一點要注意的是,默認情況下formCheckbox視圖助手具有相同名稱的複選框,創建一個隱藏的輸入與0

+0

好,非常感謝。我已經這樣做了,但不知道ZF是否提供了自動執行的操作。 既然它會有一些複選框,我現在刪除一切與ID,之後,我做了一個插入。 效果很好。非常感謝你 ! – Luka