2017-02-04 196 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

可空

下验证的字段可以是空的。当验证可以包含空值的字符串和整数等基元时,这是特别有用的。 。