Mun*_*han 15 laravel laravel-validation laravel-5.4
我正在尝试验证日期字段,只有它存在.在从Laravel 5.2升级到5.4之前,它工作正常
在Laravel 5.2中,此规则可以正常工作:
public function rules()
{
return [
'available_from' => 'date',
];
}
Run Code Online (Sandbox Code Playgroud)
在5.4中它返回验证错误The available from is not a valid date.我尝试了这个新规则
public function rules()
{
return [
'available_from' => 'sometimes|date',
];
}
Run Code Online (Sandbox Code Playgroud)
仍然有相同的错误,似乎sometimes规则不会影响验证.我怎样才能摆脱这个错误?
我不明白为什么Laravel改变了以前工作的东西!
iku*_*bic 35
出现此问题的原因是Http\Kernel.php中的\ Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull :: class.
当您提交空日期字段时,此中间件会将空字符串转换为空.然后验证返回无效日期错误.您可以查看文档以获取更多详细信息.
它可以用nullable固定
public function rules()
{
return [
'available_from' => 'sometimes|nullable|date',
];
}
Run Code Online (Sandbox Code Playgroud)
来自Laravel文档:
可空
验证字段可能为空.这在验证原语(如字符串和可包含空值的整数)时特别有用.
| 归档时间: |
|
| 查看次数: |
5915 次 |
| 最近记录: |