2017-08-24 144 views
0

我有一個小問題。我使用Laravel創建了簡單的API。當我使用驗證,如果失敗,我得到了一個共同的信息:REST API,Laravel,驗證

{ 
"result": false, 
"message": "The given data failed to pass validation.", 
"details": [] 
} 

但我怎麼能得到詳細資料,哪場失敗,爲什麼這樣的:

{ 
    "result":false, 
    "message":"The given data failed to pass validation.", 
    "details":{ 
     "email":[ 
     "The email field is required." 
     ], 
     "password":[ 
     "The password must be at least 3 characters." 
     ] 
    } 
} 

我的控制器代碼如下所示這個:

protected function validator(array $data) 
{ 
    $validator = Validator::make($data, [ 
     'name' => 'required|string|max:255', 
     'email' => 'required|string|email|max:255|unique:users', 
     'password' => 'required|string|min:3', 
    ]); 

    return $validator; 
} 

protected function create(array $data) 
{ 

    return User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'role_id' => 2 
    ]); 
} 

回答

0

試試這個我沒有嘗試,但它應該是爲你工作。

您可以使用withValidator方法。該方法接收完整的 構造的驗證器,允許您在 實際評估驗證規則之前調用其任何方法。

從這裏取參考。 laravel validation

/** 
    * Configure the validator instance. 
    * 
    * @param \Illuminate\Validation\Validator $validator 
    * @return void 
    */ 
    public function withValidator($validator) 
    { 
     $validator->after(function ($validator) { 
      if ($this->somethingElseIsInvalid()) { 
       $validator->errors()->add('email', 'Please enter valid email id'); 
      } 
     }); 
    } 
+0

如果探索我的驗證對象,我知道我有這些消息已經,我的問題是如何改變標準laravel錯誤消息「給出的數據無法通過驗證。」更詳細的內容。 – MVG1984

+1

明白了....可以ü請顯示代碼從哪裏你回覆你的迴應.. –

+1

你正在使用的Laravel版本..? 請參閱/storage/logs/laravel.log是否存在有關驗證的任何錯誤。 –