我有一个Laravel API端点来存储事件。
我在form request:StoreEventRequest
中添加了此方法以改进错误响应:
/**
* Reformat Errors.
*
* @param Validator $validator
*
* @return array
*/
protected function withValidator(Validator $validator)
{
if ($this->wantsJson()) {
$messages = reformatMessages($validator->messages());
dd($messages); // If I do this I can see the messages, otherwise response is blank.
return response()->json([
'success' => false,
'message' => $messages
]);
}
return $validator->messages()->toArray();
}
但是,如果缺少参数响应则为空白。如果我dd
我可以看到格式良好的格式,但没有任何内容从return
返回。
我正在测试Postman。
答案 0 :(得分:0)
试
protected function withValidator(Validator $validator)
{
if ($this->wantsJson()) {
$messages = reformatMessages($validator->messages());
throw new HttpResponseException(response()->json($messages, 422));
}
return $validator->messages()->toArray();
}
答案 1 :(得分:0)
您是否尝试将http响应代码添加为函数调用的第二个参数?,
return response()->json([
'success' => false,
'message' => $messages
], 400); // 400 is the response code