Laravel 5.4 - 存在验证但不是必需的

时间:2017-05-14 19:32:04

标签: laravel laravel-5 laravel-5.4 laravel-validation

我有一个'数组类型'我的表单中的下拉字段,例如:

<select name="category_id[]">
    <option value="">Please Select</option>
    // more options
</select>

这些字段中有3个(因此它是一个数组类型)并且它们都是可选的,但是如果选择了一个值,它会检查它是否是有效值,如下所示:

$rules['category_id'] = 'exists:universities,id';

我遇到的问题是,如果选择了空选项,它仍然会给我一个验证错误,例如&#34;所选类别无效。&#34;如果我选择有效值,则不会出现任何错误(如预期的那样)。

我尝试将nullablesometimes添加到验证规则中,但它们没有任何区别。作为数组类型字段,我是否需要做一些不同的事情?

2 个答案:

答案 0 :(得分:1)

如果您对select使用“类似数组”的名称,则应使用如下所示的数组验证:

$rules['category_id.*'] = ['nullable', 'exists:universities,id'];

但如果不是多选,您可以将名称更改为category_id以使其正常工作

答案 1 :(得分:0)

你能试试<option value="" selected disabled>Please select</option>吗?当没有选择时,转储$request->category_id会给你什么?