laravel - 如果 value 存在则验证,否则不验证

所以,这就是我已经尝试过的。

$regex = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/';
    $rules = [
    'nextcontactSchool' => 'nullable|digits_between:7,10',
    'websiteSchool' => 'nullable|regex:' . $regex,
    ];

一旦我发现我无法正确使用规则,我就在控制器中执行此操作。但这里的问题是,我似乎无法将空数据传递给数据库,每次我这样做时,我都会收到一条错误消息。

你能帮帮我吗?

回答1

您可以使用 nullable,如果 websiteSchool 和 nextcontactSchool 不存在,它将通过

$request->validate([
    'websiteSchool' => ['nullable', 'url'],
    'nextcontactSchool' => ['nullable', 'digits_between:7,10']
]);

如果这不是您需要的,请考虑以下验证方法:

回答2

所以,我才知道它背后的答案。当使用 nullable 时,它肯定会发送一个 null value,但它发送的是一个可以为 null 的 value 字符串。因此,与其将其与 null 进行比较,不如将其与“null”进行比较。

例如:

if($variable!='null'){
//do something
}

相似文章