2017-08-24 13 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に検証に関するエラーがありますかどうかを確認してください。 –