$this->authorize ('update', $topic);报错?

$this->authorize('update', $topic);报错
"message": "This action is unauthorized.",
"status_code": 500,
"debug": {
"line": 28,
"file": "/Users/beanho/Sites/farm-api/vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php",
"class": "Illuminate\Auth\Access\AuthorizationException",

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9
liyu001989

先确定一下当前用户是否有权限修改

6年前 评论

先确认话题的发布者ID为你当前token所属用户的ID。

6年前 评论

try catch一下AuthorizationException,然后自定义返回错误信息,或者直接全局处理一下AuthorizationException

6年前 评论
zhangatle

我也遇到了一样的问题,话题的发布者ID为我当前token所属用户的ID,不知道问题在哪里

5年前 评论

登录用户无权执行跟新操作,topic的plicy里update验证不通过。

5年前 评论

一开始我也在纳闷为什么我修改的是用户自己的topic都不行,往教程后面走,后面有说一个问题:好像是路由模型绑定出了问题。没错,因为路由交给 DingoApi 来处理了,所以模型绑定的中间件并没有注册上。手动增加 bindings 中间件。 然后我绑定了中间件后做教程后面的内容都能通过,回来再修改用户自己的文章发现可以了。所以我是这么理解的,因为认证策略是需要绑定模型的,而模型的绑定在Dingo API 中并没有注册,自然就找不到策略里的模型了,所以策略认证的时候就一直报活动不能通过认证。

个人愚见,希望有大牛出来给个更精准的解释。

5年前 评论

我也碰到这个问题了,发布者ID是当前Token的ID,而且也增加了bindings中间件,然而还是会出这个错误,还在寻找原因中...

5年前 评论

楼主,这个问题是怎么解决的?我也遇到了,调了半天了 没找到原因

4年前 评论

搞了半天我出现的原因是 patch方法使用的form-data,改为x-www-from-urlencoded

4年前 评论

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