我有一個惱人的問題。我試圖找出表單的哪些字段已更改,然後將其插入表中。我設法在以下sfWidgetFormSelect提供了一個字符串或一個int的選定的項目?
public function doUpdateObject($values)
{
parent::doUpdateObject($values);
var_dump($this->getObject()->getModified(false));
var_dump($this->getObject()->getModified(true));
}
顯示doUpdateObjectas到的var_dump而現在似乎$這個 - >的getObject() - > getModified似乎之前和將其設置爲true或false值之後,給我的工作。
我現在面臨的問題是,一些如何,sfWidgetFormSelect似乎將我的一個字段保存爲一個字符串。在保存之前,完全相同的字段是一個整數。 (我之前和之後都通過var_dump得到了這個想法)。
下面是兩個變種轉儲結果顯示:
array(1) {["annoying_field"]=> int(3)} array(1) {["annoying_field"]=>string(1)"3"}
這似乎導致學說認爲這是一個修改,從而使假陽性。
以我鹼形式,我有
under $this->getWidgets()
'annoying_field' => new sfWidgetFormInputText(),
under $this->setValidators
'annoying_field' => new sfValidatorInteger(array('required' => false)),
,最後在我的配置Form.class.php我已經重新配置該文件作爲這樣:
$this->widgetSchema['annoying_field'] = new sfWidgetFormSelect(array('choices' => $statuses));
狀態由含有像值的數組{「」a「,」b「,」c「,」d「}
我只想將狀態的索引存儲在數據庫中
而且我該如何將更改插入到另一個數據庫表中?讓我們說我的日誌表?
任何想法和建議,爲什麼這是發生的讚賞,我一直在試圖弄清楚和瀏覽谷歌的各種關鍵字沒有用。
謝謝!
編輯:
行,所以我創造了另一個領域,整數我的架構只是用於測試。 我創建了一個條目,將其保存並編輯。
這次發生了同樣的事情!
嘿!添加1 =>「a」等可能只是工作!爲什麼沒有發生在我身上。 D'哦!噢,也許我應該在doSave下做,而不是doUpdateObject。爲此非常感謝!當我回到家時,我會嘗試它,但現在,它仍然是一個投票。 – han 2010-12-20 03:01:01
嘿韓希望能爲你解決問題,我會期待你的結果!我非常樂意幫助! – guiman 2010-12-20 03:03:17
嘿,不幸的是,它不工作:(我嘗試檢測doSave下的變化,但他們變成空白。我也試過陣列的東西。它仍然是一樣的:( – han 2010-12-20 13:52:40