首页 > 解决方案 > 字符零“0”的PHP验证

问题描述

我正在使用验证器来验证我的 Laravel 8.5x 项目中的用户输入。这是我使用的代码:

use Illuminate\Support\Facades\Validator;
$validator = Validator::make(['SelectedMonth' => $SelectedMonth, 'SelectedStartDate' => $SelectedStartDate, 'SelectedEndDate' => $SelectedEndDate], [
                    'SelectedMonth' => 'required|max:7|regex:[^(\d{4}-)?\d{2}$]',
                    'SelectedStartDate' => 'nullable|max:12|regex:/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/',
                    'SelectedEndDate' => 'nullable|max:12|regex:/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/'
                ]);
                if ($validator->fails()) {
                    abort(404);
                } else {}

它工作得很好,但问题是当用户没有将 SelectedEndDate 或 SelectedStartDate 设置为任何值并且值保持“0”<-零时。验证器不会将“0”视为可为空的,因此它始终为假。如何为“0”添加一个例外为真?谢谢

标签: phplaravelvalidation

解决方案


推荐阅读