[英]Laravel object data overwritten?
我有一個用Laravel 3構建的應用程序,並且遇到了一個非常奇怪的錯誤。 我有一個帶有兩個日期時間字段的模型: start_time
和end_time
。 我還為此模型啟用了時間戳記,因此也有created_at
和updated_at
datetime字段。
我有一個控制器動作,用於處理此模型中對象的編輯/更新。 運行此操作時,每隔一次更改end_time
字段, start_time
字段將被updated_at
字段的分鍾和秒覆蓋。 我知道這聽起來很瘋狂,但是下面是我在調試時所做的一些事情。
首先,我從使用fill_raw($input)
函數開始切換,並開始使用手動分配,以防萬一。
$object->start_time = $start_time; $object->end_time = $end_time; $object->save();
我還在整個操作中添加了echo
語句,以確保該值在任何時候都沒有改變,包括在調用save()
函數后打印存儲在對象中的值的語句。 每次該值都是預期的。 但是,在重定向頁面的操作結束與頁面重新加載之間的某個時間之間,數據庫中的值正在更改。
在這一點上,我認為這在數據庫端一定很奇怪,因為我知道例如在PHPMyAdmin中,當您手動添加一行時,當它們設置為NOT NULL
時,它將使用NOW
自動填充datetime字段,但是沒有填寫。但是,我已經仔細檢查了該字段是否不為空,因為它具有正確的值。 我在這里死胡同,真的可以使用另一種觀點。
編輯:
這是指向相關控制器操作副本的鏈接。 再次指出,整個動作中都有echo
語句,這些語句用於驗證輸入數據是否正確,並且在整個動作中未以任何意外的方式被更改。 我遇到的問題僅在操作運行后出現。
更新到當前時間的列與其具有ON UPDATE CURRENT_TIMESTAMP
子句的一致。
發出SHOW CREATE TABLE yourtablename
可以確認它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.