授权策略 (UserPolicy) 的意义是什么?授权策略为什么不能写在控制器里呢?

授权策略(UserPolicy)的意义是什么?授权策略为什么不能写在控制器里呢?
比如

return  $currentUser->id  ===  $user->id;

类似的权限限制,在控制器里也可以完成。那么独立出来一个授权策略的作用是什么呢?

而且,怎么判断哪些逻辑应该写在控制器里?哪些逻辑应该写在授权策略里呢?

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

首先,把所有东西都写在控制器里在业务逻辑复杂之后会导致控制器包含许多功能,不方便维护,因此使用policy类将功能拆分到其他文件中可以使代码逻辑更加清楚。

其次,策略模型还支持一些 更为详细的响应, 这些功能都是单纯的控制器很难提供的。

5年前 评论
shebaoting (楼主) 5年前
讨论数量: 2

刚学也不咋懂 ,感觉是提出来专门做授权的公共类 ,见官方

Policies 目录

用户授权

5年前 评论
shebaoting (楼主) 5年前

首先,把所有东西都写在控制器里在业务逻辑复杂之后会导致控制器包含许多功能,不方便维护,因此使用policy类将功能拆分到其他文件中可以使代码逻辑更加清楚。

其次,策略模型还支持一些 更为详细的响应, 这些功能都是单纯的控制器很难提供的。

5年前 评论
shebaoting (楼主) 5年前

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