如何为字段接受编号和空值添加验证? [Laravel 7.x]

How to add validation for field accept number and null? [Laravel 7.x]

is_passtrue 时,我想将 score 值存储为数字。如果 is_passfalse 那么 score 应该是 null。所以我为 score

添加了如下验证
'score' => 'required_if:is_pass,true|numeric'

但是当 is_passfalse 时我遇到了一个问题,那么它的预期 score 值也是 numeric。如何解决这个问题?除了自定义验证之外,还有其他选择吗?我正在使用 laravel 7.

你应该定义一个变量来保持你的规则。 然后根据情况更改规则。

if((bool) $request->is_pass === true)
    $rules['score'] = 'required_if:is_pass,true|numeric';
else
    $rules['score'] = 'required_if:is_pass,false|null';

您可以将 nullable 验证与 numeric here and here

一起使用
'score' => 'nullable|numeric'

这将做的是检查值是否不为空,然后应用数字验证,否则跳过验证并将其接受为空。