Со ссылкой на эту stack question and answer я пытаюсь форматировать ответ моих валидаций ошибок в более упрощенном формате ... Таким образом, в обычае App \ Http \ Просит \ CustomRequest У меня естьФормат СформироватьЗапрос Validation Response Error
public function rules()
{
return [
'amt' => 'required|numeric|min:1000',
'year' => 'required|numeric|min:' . date_format(new \DateTime, 'Y'),
'user_id' => 'required',
'ratio' => 'required'
];
}
public function response(array $errors)
{
if ($this->expectsJson()) {
return response()->json(['messsage'=>'Cannot Validate','errors'=> $errors]);
}
return $this->redirector->to($this->getRedirectUrl())
->withInput($this->except($this->dontFlash))
->withErrors($errors, $this->errorBag);
}
/**
* Format the errors from the given Validator instance.
*
* @param \Illuminate\Contracts\Validation\Validator $validator
* @return array
*/
protected function formatErrors(Validator $validator)
{
return [];
}
в моем контроллере у меня есть
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
*
* @return Response Header 201
*/
public function store(CustomFormRequest $request)
{
$requestData = $request->all();
Budget::create($requestData);
return response([], 201);
}
по Laravel документы я просто должен «typehint» запрос. Однако мой ответ всегда.
{ "ID": "validation_failed", "сообщение": "Проверка не удалось.", "Мета": { "ошибки": { "АМТ": [{ "правило": "min.numeric », "сообщение": "The амт должна быть не менее 1000", "параметры".: [ "1000"]}]}}}
Который не имеет смысла, если я изменяя отклика. Что мне нужно, это
{ "ID": "validation_failed", "сообщение": "Validation не удалось", "ошибки": [{ "АМТ": { "сообщение": "The амт сусло должно быть не менее 1000. «}}]}
Я не уверен, что я должен делать на этом этапе. Что еще там?
Только что реализована возможность переопределения вывода по умолчанию. Поэтому, если вы все еще нуждаетесь в этом, просто посмотрите в окне пакета. –