I am trying to validate a date field only if it is present. It was working fine before I upgraded from Laravel 5.2 to 5.4

In Laravel 5.2 this rules works fine:

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

}

在5.4中,它返回验证错误The available from is not a valid date..我try 了这个新规则

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

}

仍然收到相同的错误,似乎sometimes条规则根本不影响验证.我怎样才能消除这个错误呢?

I don't understand why Laravel changed something that was working before!!!

推荐答案

出现此问题的原因是Http\Kernel中的\Lightlight\Foundation\Http\Middleware\ConvertEmptyStringsToull::类.php.

When you submit empty date field this middleware converts empty string to null. Then validation returns not valid date error. You can check docs for more details.

它可以固定为可为空的

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

}

From Laravel docs:

可为空的

验证中的字段可能为空.这尤其有用

Laravel相关问答推荐

laravel错误更新使用外键的数据库

在 Laravel 中排序的集合在 Vue 中突然不再排序

如何在Vite和Rollup中完全禁用分块?

Laravel 有Many Many to Many To One Eloquent

laravel 关系集合上的自定义排序

如何在 laravel 中安装 PHPExcel 库?

刚安装 Lumen 并得到 NotFoundHttpException

调用未定义的函数 App\Http\Controllers\ [函数名]

如何修复无效请求(不支持的 SSL 请求)

用 laravel 表单确认删除?

Laravel 5.3 Electron邮件队列中不允许序列化关闭

Laravel 随机排序

如何在 Laravel 中实现数组类型路由?

Laravel Eloquent:计算总价的最佳方法

Laravel 和 PHPStorm 项目的 gitignore 中包含什么?

如何在 Laravel 5 中按键获取所有缓存项目的列表?

Laravel db 迁移 - renameColumn 错误 - 请求了未知的数据库类型枚举

Laravel 事件、监听器、作业(job)、队列之间的区别

控制器中的laravel foreach循环

在laravel中删除确认