Reputation: 2896
I am trying to create a custom response if validation fails in lumen. But getting the default response. Expecting a response something like
[
'code' => 406,
'message' => "forbidden",
'errors' => {
"phone": [
"The phone must be 11 digits."
]
},
]
but getting default response like this
{
"phone": [
"The phone must be 11 digits."
]
}
Here is what I have tried.
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
];
}
Upvotes: 2
Views: 3055
Reputation: 131
You can use the function buildFailedValidationResponse
in you controller
protected function buildFailedValidationResponse(Request $request, array $errors) {
return ["code"=> 406 , "message" => "forbidden" , "errors" =>$errors];
}
Upvotes: 3