2017-02-28 60 views
0

我想使用FormRequest驗證,其中 只允許請求字段在規則()中返回數組鍵。Laravel 5 - 允許只傳遞FormRequest規則字段

在下面的代碼中,我想只允許請求字段'os','number','version'。如果請求包含其他字段,則返回錯誤響應。

我該如何修改代碼?

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

回答

1

有一種方法可以使用表單請求來做到這一點。它可能不會發送適當的響應,但它可以工作。 在您的Form Request的授權方法中使用以下代碼。

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; 
} 

它會返回403個狀態碼HTTP響應。

相關問題