edit 方法写成 API 接口的时候无法授权

想把edit方法改成接口的,但是同样的方法,写在app/http/controllers/api这个命名空间下不能正常授权,
postman结果:
file
file

命名空间和contorller基类的位置:
file

用die($user->id)打印发现 policy中没有成功传递User模型,这是为什么啊?
file

使用了jwtauth认证,是不是不走auth::login()这样的方法就不能使用这样的USER模型自动传递的机制啊?
file
file

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

@leo 搞定了。。
最初想添加api的时候,因为没有引入serializer:array这个中间件,从教程里直接复制粘贴的代码会报错,所以 在api.php文件里面把中间件给注释掉了
注释掉的中间件里面有bindings,于是整个api系统的路由都不走 \Illuminate\Routing\Middleware\SubstituteBindings::class这个负责绑定模型对象工作的中间件了,所有的主键id便无法转换成对应的模型对象
file

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

对 dingo 不熟悉帮不了你

5年前 评论

@leo
刚发现通过postman传递参数过去,原来laravel的模型参数会根据id来自动创建成对应的模型对象,但是现在不会了

file

这个会是什么原因啊?是我引入的命名空间不对吗?

5年前 评论

@leo 搞定了。。
最初想添加api的时候,因为没有引入serializer:array这个中间件,从教程里直接复制粘贴的代码会报错,所以 在api.php文件里面把中间件给注释掉了
注释掉的中间件里面有bindings,于是整个api系统的路由都不走 \Illuminate\Routing\Middleware\SubstituteBindings::class这个负责绑定模型对象工作的中间件了,所有的主键id便无法转换成对应的模型对象
file

5年前 评论

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