2017-04-27 58 views
0

我想創建一個自定義的響應,如果驗證失敗的流明。但獲得默認響應。這樣流明定製驗證響應

{ 
    "phone": [ 
    "The phone must be 11 digits." 
    ] 
} 

這裏期待一個響應類似

[ 
     'code' => 406, 
     'message' => "forbidden", 
     'errors' => { 
         "phone": [ 
          "The phone must be 11 digits." 
           ] 
        }, 
    ] 

但獲得默認響應是什麼,我都試過了。

public function validatePhoneNumber(Request $request) 
    { 
     try { 
      $this->validate($request, ['phone' => 'required|digits:11']); 
     } catch (ValidationException $e) { 
      return response()->json([ 
       'code' => 406, 
       'message' => "forbidden", 
       'errors' => $e->getMessage(), 
      ]); 
     } 
     return [ 
      'code'   => 200, 
      'message'  => 'Phone number ok', 
      'data'   => $request->phone 
     ]; 
    } 

回答

1

在你控制器

protected function buildFailedValidationResponse(Request $request, array $errors) { 
    return ["code"=> 406 , "message" => "forbidden" , "errors" =>$errors]; 
} 
+0

這爲我工作,您可以使用該功能buildFailedValidationResponse。謝謝。我在'app/Http/Controllers/Controller.php'裏有這個。必須在文件的頂部放置'使用Illuminate \ Http \ Request;'以避免'buildFailedValidationResponse'函數定義約束產生錯誤。 – Phius