如何为Laravel5.2设置不需要数字验证?我只是使用了这个代码,但是当我没有发送价值或选择框没有选择的项目时我有错误,val字段最多是数字...我需要如果请求没有床输入离开床单独。离开床验证...
$this->validate($request, [
'provinces_id' => 'required|numeric',
'type' => 'required',
'bed' => 'numeric',
]);
答案 0 :(得分:4)
如果我理解正确,您正在寻找sometimes
规则:
'bed' => 'sometimes|numeric',
在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。要快速完成此操作,请将
sometimes
规则添加到规则列表
答案 1 :(得分:1)
在Laravel 6或5.8中,您应该使用 nullable 。但有时关键字在该版本上不起作用。
答案 2 :(得分:1)
在laravel 5.5或更高版本中,我们开始使用 nullable 代替有时。
答案 3 :(得分:1)
根据laravel文档8你必须设置可为空规则 例如:
$validated = $request->validate([
'firstName' => ['required','max:255'],
'lastName' => ['required','max:255'],
'branches' => ['required'],
'services' => ['required' , 'json'],
'contract' => ['required' , 'max:255'],
'FixSalary' => ['nullable','numeric' , 'max:90000000'],
'Percent' => ['nullable','numeric' , 'max:100'],
]);
在你的情况下:
$this->validate($request, [
'provinces_id' => 'required|numeric',
'type' => 'required',
'bed' => 'nullable|numeric',
]);
答案 4 :(得分:0)
在验证规则中使用sometimes
代替required
。它会检查是否只有值。否则,它将参数视为可选参数。
答案 5 :(得分:0)
您可能需要 nullable
– sometimes
和
在标准文本输入类型上与present
结合使用时,integer|min:0
对我不起作用-总是触发整数错误。
默认情况下,Laravel在应用程序的全局中间件堆栈中包含TrimStrings和ConvertEmptyStringsToNull中间件。这些中间件通过App \ Http \ Kernel类在堆栈中列出。因此,如果您不希望验证程序将空值视为无效,则通常需要将“可选”请求字段标记为可空。
使用Laravel 6.0-dev测试