Rob*_*bok 5 php exception-handling exception laravel laravel-5
我想Exception
从我的一个控制器(或将来在几个控制器中)捕获所有普通的异常(类的实例)来统一它们的行为.我知道如何在Exceptions/Handler.php中为异常创建全局处理程序,但是如何将它们限制为某个特定的控制器呢?
我想要做的是在我的API控制器中抛出Exception时以JSON格式返回这样的数组:
[
'error' => 'Internal error occurred.'
]
Run Code Online (Sandbox Code Playgroud)
我可能决定抛出自己的异常类,ApiException
但我也希望提供第三方异常,例如数据库错误.
我应该直接将一些值传递给请求对象吗?如果是这样,怎么样?或许还有另一种方式?
如果要为特定控制器呈现不同类型的异常,可以使用请求对象来检查当前控制器:
异常/Handler.php
public function render($request, Exception $e)
{
if($request->route()->getAction()["controller"] == "App\Http\Controllers\ApiController@index"){
return response()->json(["error" => "An internal error occured"]);
}
return parent::render($request, $e);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4095 次 |
最近记录: |