Laravel API使用ValidationException传递了多个错误,但具有自定义的状态代码/标题

时间:2018-07-24 14:26:11

标签: php laravel api exception laravel-5

我当前正在使用MessageBag和ValidationException类将错误数组返回给我的API用户。问题在于它总是返回422验证异常

{
  "errors": [
    {
      "status": 422,
      "title": "Validation Exception",
      "field": "consignment.networkCode",
      "detail": "Service Denied"
    },
    {
      "status": 422,
      "title": "Validation Exception",
      "field": "consignment.networkCode2",
      "detail": "Service Denied"
    }
  ]
}

使用消息袋和此ValidationException提供了一种简单的方法,可以将多个API错误发送回去。但是它们不一定是验证错误。我研究了扩展类,但找不到一种可以自定义每个消息袋条目的状态和标题的方法。这可能还是有更好的方法来响应此类API错误?

我目前正以如下方式使用它:

$msg = new MessageBag();
foreach($response->error as $er){
      $msg->add($er->obj, $er->errorMessage);
}
$error = ValidationException::withMessages($msg->toArray());
throw $error;

0 个答案:

没有答案