【问题标题】:Laravel: Deny empty PUT requests in validationLaravel:拒绝验证中的空 PUT 请求
【发布时间】:2017-04-09 20:09:27
【问题描述】:

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

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

有没有办法用in-built validation rules 做到这一点?

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

【问题讨论】:

    标签: laravel validation dingo-api


    【解决方案1】:

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

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

    然后我就用了:

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

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-08
      • 1970-01-01
      • 2014-09-14
      • 2016-10-24
      相关资源
      最近更新 更多