手动增加 bindings 中间件。

但是结果却是 TopicTransformer 报错了,好像是路由模型绑定出了问题。没错,因为路由交给 DingoApi 来处理了,所以模型绑定的中间件并没有注册上。手动增加 bindings 中间件。

对这句话存在很大的疑问。是说
被ding接管了路由后authorize不能正确返回报错页面。所以导致了问题?
但是我发现其他的方法不存在这个问题。可以正确的返回报错。
那TopicTransformer又有什么中间件呢?这里很不理解。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3
liyu001989

是说路由模型绑定没有正确的执行

4年前 评论
Daazher (楼主) 4年前
public function update(TopicRequest $request, Topic $topic)
{

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

恩,感觉你说的很有道理,我看文章的时候没反映过来,说的是参数的注入。但,那么如果是这样的话,为什么这里的授权不会报错或者显示无权限message。反而这个API返回了一个全是null的data呢?

4年前 评论
liyu001989

因为路由模型绑定没有执行,没有数据库找对应的模型,依赖注入发现你要实例化 Topic ,就帮你实例化了一个,所以你得到了一个新的 $topic 。

为什么权限没报错,你可以跟踪代码看看,可能空对象就是不报错

4年前 评论

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