授权策略的异常捕获不了

file
老师这个异常怎么捕获的 我这样捕获不成功啊
file
file
最后还是显示
file
就算在控制器里面使用try catch也捕获不到。。。但是其他的异常时可以捕获成功的

刻意练习,每日精进
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

因为你捕获错了,应该是 Illuminate\Auth\Access\AuthorizationException

5年前 评论
讨论数量: 8
leo

因为你捕获错了,应该是 Illuminate\Auth\Access\AuthorizationException

5年前 评论

@leo

file那为什么策略类报的异常是这个,我通过异常信息的提示去封装的啊

5年前 评论
leo

@等车的猪 你仔细看报错右边的代码?

5年前 评论

@leo 看懂了 厉害了我的哥!

5年前 评论

@leo 看懂了 厉害了我的哥!

5年前 评论

我用两个账号测试过了,下面的写法没问题
public function show(Order $order){
try{
$this->authorize('own', $order);
}catch (AuthorizationException $e){
throw new InvalidRequestException('权限不够');
}
return view('orders.show', ['order'=>$order->load('items.product', 'items.productSku')]);
}
可惜要嵌套一个 try...catch... 不知道更简单的写法该怎么写?

5年前 评论

@zhaiduting 我按你这个写, 为什么他就不显示【权限不够】呢? 只有报错页面

file

4年前 评论

@jxdr 你这个是403错误,可能是视图页面不存在。按我的情况来看,如果/resources/pages/error.blade模版文件不存在的话,可能也会出现403错误。其实错误已经捕获到了
file

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!