如何为Laravel数值验证允许emty值

时间:2016-10-24 09:48:51

标签: laravel laravel-5 laravel-5.2 laravel-5.1 laravel-5.3

如何为Laravel5.2设置不需要数字验证?我只是使用了这个代码,但是当我没有发送价值或选择框没有选择的项目时我有错误,val字段最多是数字...我需要如果请求没有床输入离开床单独。离开床验证...

$this->validate($request, [
        'provinces_id' => 'required|numeric',
        'type' => 'required',
        'bed' => 'numeric',
]);

6 个答案:

答案 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对我不起作用-总是触发整数错误。

  

A Note on Optional Fields

     

默认情况下,Laravel在应用程序的全局中间件堆栈中包含TrimStrings和ConvertEmptyStringsToNull中间件。这些中间件通过App \ Http \ Kernel类在堆栈中列出。因此,如果您不希望验证程序将空值视为无效,则通常需要将“可选”请求字段标记为可空。

使用Laravel 6.0-dev测试

Full list of available rules