【问题标题】:Laravel Policy - check status of entityLaravel Policy - 检查实体的状态
【发布时间】:2020-05-03 04:02:10
【问题描述】:

我的模型具有status 属性(可以是openready)。状态为open时可以编辑模型,但状态为ready时应阻止模型。

我是否“允许”在我的Policy 中这样做?还是政策仅适用于授权?

我知道我可以做到这一点,我的问题更多是关于 Laravel 中的原则......

【问题讨论】:

    标签: php laravel eloquent laravel-6


    【解决方案1】:

    它认为将这种检查放入模型的策略中没有错,这在一定程度上取决于上下文。我想将策略(如您所描述的)视为给定应用程序的初始入口。因此,如果它仅与控制器的更新方法相关,那么恕我直言。

    但是,如果可能有其他“路径”或进程可能受到您描述的“打开/就绪”约束的影响,那么将这种检查放在 ModelObserver saving 方法中也是合理的。

    通过这样做,您可以确保您不会因为忘记预先进行授权检查而意外操作对象ready。换句话说,通过在 ObserverClass 的 saving 方法中实现它,您将拥有一个“自包含”的行为,它代表业务逻辑而不是授权逻辑。

    【讨论】:

    • 感谢您的有用回复@mynd。因为我想在我的核心(事件、工作等)中保持一些灵活性,所以使用该策略对我来说感觉很好。在我的政策中,我可以参考经理(这是我的业务逻辑的一部分)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2013-05-20
    • 2018-12-01
    相关资源
    最近更新 更多