2011-08-11 79 views
0

我有一個包含以下字段的表學說:Symfony窗​​體:保存包含複選框和/或選項的窗體?

Article: 
    columns: 
    title: 
     type: string(40) 
    content: 
     type: string(255) 
    publish: 
     type: boolean 

我創造了我的網站上創建文章的自定義窗體。在我的自定義表格中,我有一個publish字段的複選框。提交表單時,如果複選框被選中,表單值將返回爲「on」。如果複選框未被選中,表單值不存在。

因爲我正在使用擴展Doctrine模型表單的表單,所以我希望能夠在通過有效性時簡單地執行$this->form->save();

但是,如果publish的複選框只給出值on或者什麼都不是,那麼這兩個值都不適用於數據庫。該表格可以正確保存,但publish的數據庫值始終只是默認值,無論該複選框是否被選中。

這個問題的正確方法是什麼?

另外,你如何處理選擇sfWidgets?傳遞的值是一組值。 $this->form-save()似乎忽略這些數組。

您是否需要手動從表單中獲取值並從值中創建一個Doctrine Collection並將其保存起來?或者Symfony希望您使用更好的方法嗎?

回答

0

是您發佈sfValidatorBoolean實例的驗證器嗎?如果是,它應該返回false。

有關選擇小部件的問題需要更詳細的說明。請粘貼表格的configure方法,您從$form->getValues()收到的值,以及您期望得到的內容。

+0

明天我會粘貼一些東西。你應該爲複選框設置一個驗證器嗎?它要麼被檢查,要麼不被檢查。它怎麼會有什麼不同?有什麼要驗證的? –