【问题标题】:Laravel 5 - Allow to pass only FormRequest rules fieldsLaravel 5 - 只允许传递 FormRequest 规则字段
【发布时间】:2017-02-28 13:21:46
【问题描述】:

我想在其中使用 FormRequest 验证 仅在 rules() 中允许请求字段返回数组键。

在下面的代码中,我想只允许请求字段“os”、“number”、“version”。如果请求包含其他字段,则返回错误响应。

如何修改代码?

public function rules()
  {
    return [
        'os' => [
            'required',
            \Rule::in(['android', 'ios']),
        ],
        'number' => 'required|integer',
        'version' => ['required', 'regex:/^\d+.\d+.\d+$/'],
    ];
  }

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    有一种方法可以使用表单请求来做到这一点。它可能不会发送正确的响应,但它可以工作。 在您的表单请求的授权方法中使用以下代码。

    public function authorize ()
    {
        $params = $this->request->keys();
        $os_status = in_array('os', $params);
        $number_status = in_array('number', $params);
        $version_status = in_array('version', $params);
    
        $check = $os_status & $number_status & $version_status & (count($params) != 3 ? false : true);
    
        return $check;
    }
    

    它将返回 HTTP 响应,并带有 403 状态码。

    【讨论】:

      猜你喜欢
      • 2020-08-17
      • 2020-06-25
      • 2015-03-19
      • 2021-07-08
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 2020-09-22
      相关资源
      最近更新 更多