对于字段的Laravel验证,如果"图像/文件"被选中了?

时间:2017-01-11 10:43:57

标签: php laravel laravel-5 laravel-5.3

我有一个字段"图像",类型是文件,只需要验证图像是否被选中,意味着它也可以为空。

我试过了:'avatar' => 'mimes:jpeg,jpg,png,gif|max:100000',,但也是必需的。

我仍然尝试使用参数presentsometimes,但仍然需要该字段。

如果仅选择图像,我该如何验证?

5 个答案:

答案 0 :(得分:7)

  • 如果您想要使用的输入数组中“头像”字段可能不存在

'avatar' => 'sometimes|mimes:jpeg,jpg,png,gif|max:100000'

  

在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查。要快速完成此操作,请添加有时规则。

  • 如果“头像”字段绝对位于输入数组中,那么它的值将为null使用:

'avatar' => 'nullable|mimes:jpeg,jpg,png,gif|max:100000'

  

验证字段可能 null 。这在验证原语(如字符串和可包含空值的整数)时特别有用。要快速完成此操作,请添加可空规则。

答案 1 :(得分:1)

在您的情况下,您必须仅检查它是否存在 - 验证何时有值。所以请使用sometimes

  

“在某些情况下,您可能希望对a执行验证检查   仅当输入数组中存在该字段时才输入字段。快点   完成此操作,将有时规则添加到规则列表“

 $v = Validator::make($data, array(
        'email' => 'sometimes|required|email',
    ));

在你的情况下,

$v = Validator::make($data, array(
        'avatar' => 'sometimes|mimes:jpeg,jpg,png,gif|max:100000',
    ));

注意:

以下代码将不执行任何操作,因为没有要验证的规则,因为即使它存在于POST数组中,也应该指定规则。并没有任何区别。

$v = Validator::make($data, array(
    'avatar' => 'sometimes',
));

答案 2 :(得分:0)

您可以在规则中尝试'nullable'

https://laravel.com/docs/5.3/validation#rule-nullable

答案 3 :(得分:0)

首先检查$request对象。在您的请求中检查avatar是否可用。然后试试这个:

'avatar' => 'sometimes|image|mimes:jpeg,bmp,png,gif|max:2048'

答案 4 :(得分:0)

我发现最有效的解决方案是使用window.open('http://' + sites[i],'_blank');

Rule::requiredIf