Laravel,使用选择框的条件来指示表单验证

时间:2018-11-08 14:40:23

标签: php laravel forms

我的laravel更新表单中有一个新添加的选择框:

<tr>
  <td>{!! Form::label('statusCode', 'Active') !!}</td>
  <td>{!! Form::select('statusCode', array('A' => 'Yes', 'D' => 'No')) !!}</td>
</tr>

将其设置为“是”或“否”是可行的,当我提交表单时,它会正确更新数据库记录,但是验证有些麻烦。

从技术上讲,如果我将其设置为“否”以停用图像,那么我需要的只是该图像的ID,因此我知道要停用的是该图像,但是现在,如果输入为空,它将强制对不必要的输入进行验证。 / p>

因此在此块上,如果我的选择设置为“ D”或“否”,那么我只需要输入ID:

$this->validate($request, [
        'id' => 'required|numeric|unique:jfi.image_files,id,' . $id,
        'prdGrpNum' => 'numeric|required',
        'altGrpDesc' => 'required',
        'cover1' => 'numeric|required', 
        'color1' => 'numeric|required', 
        'typeId' => 'numeric|required'
    ]);

但是,在下一个代码块中,我将对照数据库检查所有已填写的输入,以保持数据的卫生。

因此,对于此块,我想说“如果选择框设置为'D'/'No'并且此字段为空,请不要进行验​​证。否则,请对imageService进行此现有验证”

 if(!$imageService->validImageTypeId($request->typeId))
        return back()->withErrors("Invalid image type given");

如何使用选择框的值来允许空白字段跳过验证,但仍要验证填充的字段?

1 个答案:

答案 0 :(得分:2)

您可以使用required_if规则: required_if:anotherfield,value,...

'prdGrpNum' => 'required_if:statusCode,Yes|numeric'

,其他规则也一样。

相关问题