對Laravel 5.5的更新似乎給我造成了一些古怪。可能是我搞砸了,但這些問題只與新版本打破 - 這個相同的代碼沒有在5.4,5.3等失敗。更大的問題是,錯誤是不一致的在同一模型 - 它更新失敗,但在商店工作。Laravel 5.5更新空日期字符串產生的數據缺少碳錯誤
我在'prog'模型上有一個名爲'decom_date'的日期字段,模型上的$日期字段被覆蓋以包含'decom_date'。用戶可以填寫新的「prog」表單,並跳過「decom_date」字段。該模型保存沒有錯誤。如果用戶編輯具有完全相同的形式相同的PROG模型,並離開「decom_date」字段留空,在Laravel 5.5出現以下錯誤只:
message "Data missing"
exception "InvalidArgumentException"
file "/var/www/ipfast/vendor/nesbot/carbon/src/Carbon/Carbon.php"
line 582
IE碳現在期待的格式,而不是一個空的字符串僅在更新時。我可以解決這一個突變基因的模型,像這樣:
public function setDecomDateAttribute($value)
{
$this->attributes['decom_date'] = $value ?: null;
}
沒問題 - 這工作,我認爲將停止新的突破100%......但我擔心當事情突然斷裂,尤其是在整個保存過程中似乎並不一致。這種模式在我使用日期的每個模型中都一致地失敗,並且在更新之前這些模式沒有被破壞。
任何人都可以對此有所瞭解 - 或者可能只是我做過的一些愚蠢的事情?
非常感謝您的回答。正確 - 對於上面的中間件,Laravel應該自動將它們轉換爲null,並且我不應該有任何問題。我在L5.0中編寫了應用程序,因此必須手動執行此操作,所以我不*使用中間件。 ,這不是我的問題,我相信以前版本字段不存在,但它現在在兩個存儲/更新方法中作爲空字符串返回。可能是另一個LaravelCollective問題,但仍不能解釋差異存儲/更新。或者可能在$ request代碼中有所改變。仍然沒有快樂。 – Watercayman