在响应[response-> exception = null]后在客户Middelware中获取ValidationException

时间:2019-07-27 22:56:35

标签: php laravel lumen

当我有ValidationException时,我想修改“错误”字段。问题是当我有ValidationException时,响应变量的字段异常使我为空。

句柄功能的一部分

dd($response);
if(isset($response->exception) && $response->exception instanceof validationException){
    $data = $response->getData();
    $transformedErros = array();
    foreach ($data->error as $field => $value) {
        $transformedField = $transformer::transformedAttribute($field);
        $transformedErros[$transformedField] = str_replace($field, $transformedField, $value);
    }
    $data->error = $transformedErros;
    $response->setData($data);
}

Result of dd($response)

1 个答案:

答案 0 :(得分:0)

可能是因为异常处理程序已经处理了异常。

无论如何。错误处理不应位于中间件中,而应位于异常处理程序中。您可以使用以下代码在bootstrap/app.php中注册自己的异常处理程序:

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

App\Exceptions\Handler扩展\Laravel\Lumen\Exceptions\Handler并覆盖您需要更改的内容。

看看https://laravel.com/docs/5.8/errors#the-exception-handler,以了解有关异常处理程序的更多信息。