使用datetime local进行Laravel验证

使用datetime local进行Laravel验证,laravel,validation,datetime,Laravel,Validation,Datetime,我需要一些关于Laravel表单验证的帮助: $now = Carbon::now(); $after = Carbon::createFromDate(2025,01,01); return request()->validate([ 'name' => ['required'], 'description' => ['required'], 'date' => ['required', 'bef

我需要一些关于Laravel表单验证的帮助:

    $now = Carbon::now();
    $after = Carbon::createFromDate(2025,01,01);

    return request()->validate([
        'name' => ['required'],
        'description' => ['required'],
        'date' => ['required', 'before:'. $now, 'after:'.$after]
    ]);
刀片:

<input type="datetime-local" class="form-control" name="date[]">
我认为这应该行得通,但不管它总是抛出什么输入值和错误。我的猜测是,日期格式不匹配,Laravel无法进行比较。我用不同的形式进行了基本相同的比较,但只使用了日期类型,这非常有效

我在这里发现了一些类似的问题,但对我来说没有任何效果。我没有主意了。其他人也有同样的问题吗


感谢您提前给出答案

根据您在
日期
字段中使用的验证规则,始终抛出错误是非常有意义的。原因是您希望您的
日期在当前时间之前,同时在2025-01-01之后,无法产生真实输出

你需要做的是颠倒你的规则值

'date' => 'required|array', // check date is set and is an array
'date.*' => ["before:$after", "after:$now"] // each element in the array needs to follow the before and after rules

通过这种方式,您要求您的
日期
值在当前日期之后
和2025-01-01之前

都是,谢谢您的建议,但我已经尝试过了,它抛出了一个错误。每次我得到一个:日期必须是2020-04-12 10:27:30之后的日期错误。不管我使用什么日期值好的,所以我发现了问题,因为我向后端发送了一个数组(name='date[],Laravel无法处理验证)。我需要找到一个验证数组的解决方案