Laravel,检查条件,如果请求不为空

时间:2018-11-08 18:40:39

标签: php laravel

我在Laravel中有一个表单,提交和验证工作正常,但是我也在进行自定义验证,以对照数据库检查数据(进行清理)。

问题是,如果只填写每个字段,我只想执行此验证。换句话说,如果不需要输入因而没有填写,我不希望它因与数据库中的数据不匹配而失败。

例如,我在刀片上有一个表单输入:

<td>{!! Form::select('productNumber',  $img->productNumber) !!}</td>

在控制器中,我正在根据服务检查此内容以确保其为有效数据

if(!$productCheckService->validGroupCode($request->productNumber))
        return back()->withErrors("Invalid group: ".$request->productNumber);

如果填写,这可以工作,但是如果该字段为空,我想绕过该检查。换句话说,不需要该字段,因此不需要对可能为空/空的字段进行数据有效性检查

我正在下面执行此操作,但是由于某种原因它为空时它仍然会失败。我完全想念什么吗?我认为在检查之前检查它是否为空应该足够。

if(!empty($request->productNumber))
 if(!$productCheckService->validGroupCode($request->productNumber))
        return back()->withErrors("Invalid group: ".$request->productNumber);

1 个答案:

答案 0 :(得分:0)

您可以使用Laravel的“有时”属性,因此,如果您的字段不存在于请求数组中,它将绕过验证。

$v = Validator::make($data, [
'productNumber' => 'sometimes|required|number',

]);