參照這個stack question and answer我想我的錯誤驗證的響應格式,以更簡化的格式......因此,在自定義應用程序\ HTTP \請求\ CustomRequest我格式FormRequest驗證錯誤響應
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」, 「消息」: 「驗證 失敗。」, 「元」:{ 「錯誤」:{ 「AMT」:[{ 「規則」:「min.numeric 」, 「消息」: 「其 AMT必須至少1000」, 「參數」: 「1000」]}]}}}
,如果我改變了這沒有意義響應格式。我需要的是
{ 「ID」: 「validation_failed」, 「消息」: 「驗證 失敗」, 「錯誤」:[{ 「AMT」:{ 「消息」:「其 AMT絕至少1000.「}}]}
我不知道我應該做什麼在這一點上。那裏還有什麼?
剛剛實現了覆蓋默認輸出的功能。所以,如果您仍然需要它,只需查看包裝的自述文件即可。 –