【问题标题】:Returning validation error message as JSON以 JSON 形式返回验证错误消息
【发布时间】:2021-04-08 14:46:08
【问题描述】:

我想从 laravel 的验证器以 JSON 格式返回一个失败的验证尝试消息。但是在验证失败后,我得到了一个“无效的 JSON 响应”。它不返回任何自定义消息。我做错了什么?

控制器

public function uploadArtwork(Request $request) {

$validator = Validator::make(request()->all(), [

        'artwork-title' => 'required|max:240',
        'artwork-description' => 'max:120|nullable',
        'artwork-medium' => 'max:120|nullable',
        'artwork-software' => 'max:120|nullable',
        'artwork-tags' => 'max:120|nullable',
        'files' => 'required',
        'files.*' =>  'required|mimes:jpeg,png,jpg,gif|max:5024',
],
    [   
        'artwork-title.required' => 'Error: Please add title',
        'files.required' => 'choose a photo.',
        'files.image' => 'file should be an image.',
        'files.max' => 'Your photo is too large',
        'files.mimes' => 'We only accept :values.',
   ]
);


 if ($validator->fails()) {
        
 return response()->json($validator->errors());
 
 }

js

 error: function (file, response) {

   // $("#status-message").text(responseText);
   console.log(response);

  }

【问题讨论】:

  • 您没有返回错误响应,而是返回常规的 200 响应,顺便说一句

标签: json laravel


【解决方案1】:

实际上,上述方式您没有发送错误响应。您正在发送成功的响应。如果您更改以下内容将起作用。

if($validator->fails()){
   return response()->json([
      'status'   => 'error',
      'message'  => $validator->getMessageBag()
   ], 400);
}

更多信息请参考:Return validation error message as JSON - Laravel 6

【讨论】:

  • 如何获得 JSON 响应,然后输出为 HTML 文本?我什至尝试过 console.log(response);在我的 JS 文件中,但我没有得到任何回报。
  • 对于错误响应,需要验证失败。你的验证呢?
猜你喜欢
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多