Как вернуть только первую ошибку для каждого поля в валидаторе Laravel?Php

Кемеровские программисты php общаются здесь
Anonymous
Как вернуть только первую ошибку для каждого поля в валидаторе Laravel?

Сообщение Anonymous »


При получении ошибок для простой проверки набора полей Laravel возвращает ключ/значение с «полем»/массивом со строкой внутри вместо простой строки с описанием ошибок.

Вот как выглядит код валидатора:

$validator = Validator::make($request->all(),[ 'email'=>'обязательный|email|уникальный:пользователь', 'first_name'=>'обязательно|мин:3', ]); если ($validator->fail()) { $response = ['errors'=>$validator->errors()]; return $this->r(ResponseFactory::invalid_input_params($response)); } Вот что я получаю:

{ «код»: 400, "kind": "invalid_input_params", "статус": "ошибка", "данные": { "ошибки": { "электронная почта": [ «Письмо уже занято». ], "имя": [ «Поле имени обязательно». ] } } } Вот что я хочу:

{ «код»: 400, "kind": "invalid_input_params", "статус": "ошибка", "данные": { "ошибки": { "email": "Электронное письмо уже занято.", "first_name": "Поле имени является обязательным." } } } Я пытаюсь передать интерфейсному приложению ошибки из конечной точки API для обычной формы и хочу, чтобы в каждом поле была только ошибка.

По умолчанию Laravel выводит массив для каждого поля, даже если в каждом поле есть только ошибка — я пытаюсь преобразовать его в строку и принять только первую ошибку.

Вернуться в «Php»