php - Laravel Policy - 检查实体的状态
问题描述
我有一个带有status
属性的模型(可以是open
或ready
)。状态为 时可编辑模型,状态为open
时应屏蔽ready
。
我是否“允许”这样做Policy
?还是政策仅适用于授权?
我知道我可以做到这一点,我的问题更多是关于 Laravel 中的原则......
解决方案
它认为将这种检查放入模型的策略中没有任何问题,这在一定程度上取决于上下文。我想将策略(如您所描述的)视为给定应用程序的初始入口。因此,如果它仅与控制器的更新方法相关,那么恕我直言。
但是,如果可能有其他“路径”或进程可能受到您描述的“打开/就绪”约束的影响,那么在ModelObserver saving
方法中放置这种检查也是合理的。
通过这样做,您可以确保您不会ready
因为忘记预先进行授权检查而意外操作对象。换句话说,通过在saving
ObserverClass 的方法中实现它,您将拥有一个“自包含”的行为,它代表业务逻辑而不是授权逻辑。
推荐阅读
- mongodb - 从 MongoDB 集合中的数组中获取值
- c# - 获取手动设置的 HttpResponseMessage 内容值(在代码中硬编码)
- hyperledger-fabric - CRIT 005 outputChannelCreateTx 错误
- mysql - index_merge 全表扫描 - 2 秒 mysql 选择
- facebook-messenger - Messenger 扩展 Javascript SDK 错误
- html - 我怎样才能像桌面一样显示移动设备?
- javascript - 如何找出视频的质量以及如何更改它?
- angular - 类型“X”不能分配给角度 4 中的类型“Y”
- python-3.x - CERTIFICATE_VERIFY_FAILED Python 3.6 mac osx 无法使用“Install Certificates.command”修复
- angularjs - 获取highcharts滚动条的左侧和顶部位置