我在Laravel中创建了一个工人类。
工人阶级与Lumen沟通。如果流明中有错误,它会在json中回复给Laravel。
这样的工人阶级: -
handleRequestError()
$error['error_type']
方法读取$error['code']
的值并抛出特定异常。
但是,我想要2或3个错误代码(if (if ($error['error_type'] == 'ftp' && $error['code'] == 200) {
response(['success' => false, 'message' => 'could not connect']);
}
)以json格式回复用户。这样做的好方法是什么?
例如:
{{1}}
我不想将响应逻辑放在worker类中。我需要在异常处理程序中执行此操作吗?
答案 0 :(得分:1)
您可以将错误类型和错误代码标识符绑定到应用程序容器,并让它创建正确的异常类。例如:
app()->bind('type1-error1', ExceptionClass1::class);
app()->bind('type2-error2', ExceptionClass2::class);
app()->bind('type2-error3', ExceptionClass3::class);
这些可以在应用程序生命周期的早期绑定,例如在AppServiceProvider boot()中。然后,异常处理程序可以使用以下方法基于类型错误组合来解析正确异常的实例:
$e = app('type1-error1');
throw $e;
容器是您可以使用的强大工具!