Laravel使用本地日期时间进行验证



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

刀片:

<input type="datetime-local" class="form-control" name="date[]">

验证:

$now = Carbon::now();
$after = Carbon::createFromDate(2025,01,01);
return request()->validate([
'name' => ['required'],
'description' => ['required'],
'date' => ['required', 'before:'. $now, 'after:'.$after]
]);

我认为这应该有效,但它总是抛出和错误的输入值是什么并不重要。我的猜测是日期格式不匹配,Laravel无法进行比较。我用不同的形式进行了基本相同的比较,但只有日期类型,这非常有效。

我在这里找到了一些类似的问题,但对我来说什么都不管用。我没有主意了。其他人也有同样的问题吗?

感谢提前回答

根据用于date字段的验证规则,总是抛出错误是非常合理的。原因是您希望date在当前时间之前,同时在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

通过这种方式,您要求您的每个date值在当前白天之后为,在2025-01-01之前为<strong]。>

相关内容

  • 没有找到相关文章

最新更新