0
我是Laravel的新手(我们在工作中使用5.0)。现在,当我们在Controller中响应API请求时,我们一遍又一遍地重写相同的代码以响应未授权的操作。例如,如何捕捉laravel控制器异常
public function getUsers(){
if (Entrust::can('users.view')){
$users = Users::get();
return response()->done($users, 200);
} else {
return response()->unauthorized('users.view');
}
}
如果我们具有不同的权限可以允许API请求成功,它会变得越来越复杂。
我想简单地抛出一些异常,如果用户不能执行API请求。例如,
public function getUsers(){
require('users.view'); // throws an UnauthorizedException if current user doesn't have 'users.view' permission
$users = User::get();
return response()->done($users, 200);
}
public function someOtherMethod(){
if (!Entrust::can('permission1') && !Entrust::can('permission2')){
throw new UnauthorizedException(['permission1', 'permission2']);
}
// some other stuff
}
但我不知道什么代码调用API函数,也不知道在try/catch中将该调用包装在哪里。编写UnauthorizedException代码很容易,并且很容易将其转换为json,但我在哪里放置处理程序?正如我所说,我是Laravel的新手,我不知道它是如何处理这些例外的。
理想情况下,无论我找到什么解决方案,我想将其扩展到其他异常,以便我们可以根据常见的异常来获得一致的json响应。
我刚开始深入研究Laravel 5,但如果这是在多条路线上运行的东西,我会考虑中间件。 – mAAdhaTTah
这正是我所需要的(我得到它的工作)。如果你为这个效果添加一个答案,我会接受它,并评论我采取的确切步骤。 – whiterook6
完成 - 很高兴你的工作! – mAAdhaTTah