所以,这就是我已经尝试过的。
$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
}