2017-08-24 147 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是否存在有关验证的任何错误。 –