在我的模型中,我有一個名爲timestamp
(MySQL類型:timestamp
)的字段,在safe
驗證器中定義,我無法手動編寫它。每次我打電話:時間戳字段只能通過Yii中的行爲更新
$model->timestmap = time();
$model->save();
模型保存(行創建/更新),那就是 - 它通過驗證沒有錯誤,但timestamp
場充滿了0000-00-00 00:00:00
默認值(我決定刪除默認on update CURRENT_TIMESTAMP
屬性,我不希望MySQL來處理這個)。
但是,當我刪除上面的代碼並附加CTimestampBehavior
而不是,更新和創建字段正在填充正確的值,沒有任何問題。
可能發生什麼或我錯過了什麼?行爲如何在沒有問題的情況下更新字段,而我的手動嘗試失敗?這是因爲列類型是timestamp
,而不是datetime
或int
?
我總是被告知,第一條線索,爲什麼某些屬性沒有保存,是因爲它沒有在safe
驗證程序列表中列出,或者因爲它在unsafe
驗證程序列表中列出。但是這個列表在safe
列表中。
謝謝大家給予啓發答案和可惜,我只能接受其中的一個。在我的例子中,我決定繼續使用'CTimestampBehavior'作爲最簡單的解決方案。 – trejder