2017-02-04 192 views
9

有時驗證規則,我試圖驗證日期字段只有當它是存在的。之前我從Laravel 5.2升級到5.4Laravel 5.4不工作

在Laravel 5.2本規則這是工作的罰款正常工作:

public function rules() 
{ 
    return [ 
     'available_from' => 'date', 
    ]; 

} 

在5.4返回驗證錯誤The available from is not a valid date.我嘗試這個新的規則

public function rules() 
{ 
    return [ 
     'available_from' => 'sometimes|date', 
    ]; 

} 

仍然有同樣的錯誤,似乎sometimes規則根本不影響驗證。我怎樣才能擺脫這個錯誤?

我不明白爲什麼Laravel改變的東西,是之前的工作!

+1

什麼是你正在使用的日期格式? –

+0

我使用這種格式'YYYY-MM-DD' –

回答

17

的問題,因爲\照亮\基金會出現\ HTTP \中間件\ ConvertEmptyStringsToNull ::在HTTP \ Kernel.php類。

當您提交空日期字段這個中間件轉換成空字符串爲空。然後驗證返回無效的日期錯誤。你可以檢查docs瞭解更多詳情。

可以固定可空

public function rules() 
{ 
    return [ 
     'available_from' => 'sometimes|nullable|date', 
    ]; 

} 

Laravel docs

可空

下驗證的字段可以是空的。當驗證可以包含空值的字符串和整數等基元時,這是特別有用的。 。