📜  Laravel 验证日期 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:39.111000             🧑  作者: Mango

Laravel 验证日期 - PHP

Laravel 提供了许多内置的验证规则来验证表单提交的数据。其中,日期验证规则可以用来验证日期格式是否正确,并且可以验证日期是否在指定的范围内。

验证日期格式
$request->validate([
    'date' => 'required|date_format:Y-m-d',
]);

上面的代码片段演示了如何使用 date_format 规则验证日期格式是否正确。在这个例子中,日期必须满足格式 Y-m-d

验证日期范围
$request->validate([
    'date' => 'required|date|after_or_equal:start_date|before_or_equal:end_date',
]);

上面的代码片段演示了如何使用 after_or_equalbefore_or_equal 规则验证日期是否在指定的范围内。在这个例子中,日期必须在 start_dateend_date 之间。

自定义错误消息

如果验证失败,Laravel 会将错误信息存储在 $errors 变量中。我们可以使用以下代码片段来打印出验证错误消息:

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

此外,我们还可以自定义验证失败的错误消息。例如,下面的代码片段演示了如何自定义日期验证规则的错误消息:

$request->validate([
    'date' => [
        'required',
        'date_format:Y-m-d',
        function ($attribute, $value, $fail) {
            if (strtotime($value) < strtotime('today')) {
                $fail('The :attribute must be a date after or equal to today.');
            }
        },
    ],
]);

在这个例子中,我们使用匿名函数来自定义验证规则。如果验证失败,我们可以使用 $fail 方法来自定义错误消息。

总结

在本文中,我们介绍了如何使用 Laravel 的内置日期验证规则来验证表单提交的数据。我们还介绍了如何自定义错误消息来提高用户体验。如果你想了解更多有关 Laravel 的信息,请查看 Laravel 文档。