Как показать сообщение проверки, если номер НДС недействителен?(Переменная ошибок пуста) - PullRequest
0 голосов
/ 02 июня 2018

У меня есть этот код, $ vatValidator проверяет номер чана.$ Validator проверяет другие данные запроса.

Например, если пользователь не вставил значение в поле имени, появится ошибка проверки:

{success: false,…}ошибки: {имя: ["Заполнить все поля."]} успех: ложь

Но если пользователь вставит недопустимое значение для чана, сообщение проверки не появится, поскольку в ответе ошибки пусты:

{success: false, errors: []} errors :[]

Знаете ли вы, как показать сообщение, если номер чана указан неверно?Сообщение типа "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);
}

Полный метод:

 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);

    }

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Вы можете использовать замыкание для проверки:

$rules['vat'] = [
    function ($attr, $value, $fail) use ($request) {

        if (!VatValidator::validateFormat($request->country . $request->vat)) {
            $fail('Invalid vat.');
        }

    }
];
0 голосов
/ 02 июня 2018
$errors = $validator->messages();
$errors->merge($vatValidator->messages())

переменная $ error содержит все сообщения об ошибках

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...