为什么要用 policy?

在删除用户地址、更新、编辑的时候判断这个地址是否属于当前用户,为什么要使用policy 这个类去定义判断,如果直接在删除、更新、编辑的时候直接去判断 $user_address->user_id == $request->user()->id 这样也能做到,我不明白的是用 policy 在哪方面有优势?

赤色圣战
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
leo
最佳答案
  1. 如果以后要调整相关权限逻辑,比如前台也有超级管理员,可以直接修改用户的收获地址,那这个时候 Policy 方案只需要修改一个地方,而你说的方案需要每个控制器都修改。
  2. Policy 可以统一报错信息,由 Laravel 框架抛出异常;而在每个控制器中判断则需要手动抛出异常。
5年前 评论
讨论数量: 3
leo
  1. 如果以后要调整相关权限逻辑,比如前台也有超级管理员,可以直接修改用户的收获地址,那这个时候 Policy 方案只需要修改一个地方,而你说的方案需要每个控制器都修改。
  2. Policy 可以统一报错信息,由 Laravel 框架抛出异常;而在每个控制器中判断则需要手动抛出异常。
5年前 评论
leo
  1. 如果以后要调整相关权限逻辑,比如前台也有超级管理员,可以直接修改用户的收获地址,那这个时候 Policy 方案只需要修改一个地方,而你说的方案需要每个控制器都修改。
  2. Policy 可以统一报错信息,由 Laravel 框架抛出异常;而在每个控制器中判断则需要手动抛出异常。
5年前 评论

@leo 确实,定义在policy里在权限判断方面有优势,本来我还想定义在模型里能不能做到一样的效果

5年前 评论
running8

原来如此。学习的时候是感觉多了一层,但理解掌握了,习惯了,会给我们开发带来很大帮助。看来习惯就好了。

5年前 评论

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