I have this code, the $vatValidator validates the vat number. The $validator validates other request data.
For example if the user dont insert a value for the name field it will appear a validation error:
{success: false,…} errors: {name: ["Fill all fields."]} success : false
But if the user insert a invalid value for the vat no validation message appears because in the response the errors are empty:
{success: false, errors: []} errors :[]
Do you know how to show a message when the vat number is incorrect? A message like "Invalid vat".
$vatValidator = VatValidator::validateFormat($request->country . $request->vat);
$validator = Validator::make($request->all(), $rules, $messages);
$errors = $validator->errors();
$errors = json_decode($errors);
if ($validator->fails() || $vatValidator == false) {
return response()->json([
'success' => false,
'errors' => $errors
], 422);
}
Full method:
public function storeInfo(Request $request, $id, $slug = null, Validator $validator){
...
$rules = [];
$messages = [];
if ($all) {
$rules["name.*"] = 'required|max:255|string';
$rules["surname.*"] = 'required|max:255|string';
}
$vatValidator = VatValidator::validateFormat($request->country . $request->vat);
$validator = Validator::make($request->all(), $rules, $messages);
$errors = $validator->errors();
$errors = json_decode($errors);
if ($validator->fails() || $vatValidator == false) {
return response()->json([
'success' => false,
'errors' => $errors
], 422);
}
if ($validator->passes()) {
}
return response()->json([
'success' => true,
'message' => 'success'
], 200);
}