Laravel:在验证中拒绝空PUT请求

时间:2016-11-25 12:08:21

标签: laravel validation dingo-api

Laravel 5.3' $api->resource()路由将PUT请求映射到控制器的update方法。

当发出空的HTTP PUT请求时,我无法触发验证错误。我的$this->validate()规则都是可选的,因为更新中不需要任何字段。 但是,如果请求为空(count($request->all() == 0),我真的很想让验证失败。

有没有办法用in-built validation rules

来做到这一点

'*' => 'min:1'的验证规则不起作用。

1 个答案:

答案 0 :(得分:0)

我没有找到有效的内置规则,所以我注册了一个自定义规则:

    \Illuminate\Support\Facades\Validator::extendImplicit(
        'requestnotempty',
        function($attribute, $value, $parameters, $validator) {
            return count($validator->getData()) !== 0;
        }
    );

然后我用它:

    $this->validate(
        $request,
        [
            '' => 'requestnotempty',
            //...
        ]
    );