基本的是,我想处理来自我的API的错误并确保通过API抛出的所有错误都给出了json响应,但对于我希望发送HTML响应的网站。
如果有更好的方法,那么纯粹应用http://laravel.com/docs/requests#request-information中的逻辑并使用类似的东西:
if (Request::is('admin/*'))
{
//
}
这可行,但对于可能抛出的每种异常类型,它看起来有点笨拙吗?文档似乎没有任何东西,但是如果有什么可能有用的话我会徘徊,所以可以为set route通配符应用错误?类似的东西:
App::error('admin/*', function(Exception $exception)
{
Log::error($exception);
});
答案 0 :(得分:2)
您可以添加App :: error过滤器并在该过滤器中执行Route检查,然后在json中发送响应。这样一个简单的例子:
App::error(function(Exception $exception) {
if (Request::is('api/*')) {
$message = get_class($exception) . ":: message: " . $exception->getMessage();
return Response::json(["success"=>false,"message"=>$message]);
}
});
答案 1 :(得分:1)
您可以使用路由组http://laravel.com/docs/routing#route-groups并对组应用过滤器,或者如果您在前缀路由组http://four.laravel.com/docs/routing#route-prefixing中声明它,则可能会使用App :: error方法。我不是百分之百地判断这两种方法是否有效,但如果你没有运气,Laravel IRC非常活跃,请参阅http://laravel.io/irc以获得快速简便的网络客户端。