Php 如何检查用户属性是否为Symfony中不同路由组的特定值?
系统: 用户与公司绑定。公司有执照。许可证有两个到期日。expirationBasic和expirationExtended 我想要的是: 对于50条路线,我想检查登录用户所在公司的许可证是否有expirationExtended>now 对于50条路线,我想检查登录用户所在公司的许可证是否有expirationBasic>nowPhp 如何检查用户属性是否为Symfony中不同路由组的特定值?,php,symfony,security,symfony-3.4,Php,Symfony,Security,Symfony 3.4,系统: 用户与公司绑定。公司有执照。许可证有两个到期日。expirationBasic和expirationExtended 我想要的是: 对于50条路线,我想检查登录用户所在公司的许可证是否有expirationExtended>now 对于50条路线,我想检查登录用户所在公司的许可证是否有expirationBasic>now 我使用的是symfony 3.4这个问题缺少细节,比如检查失败时您希望系统做什么。至少有两种常见的处理方法 “Symfonic”方法是添加一个。创建一个扩展Event
我使用的是symfony 3.4这个问题缺少细节,比如检查失败时您希望系统做什么。至少有两种常见的处理方法 “Symfonic”方法是添加一个。创建一个扩展
EventSubscriberInterface
的新类,并将其放入EventSubscriber
目录/命名空间中。当触发相应的事件时,您的方法可以执行检查并抛出和AccessDeniedHttpException
假设您的50条路由到多个控制器,另一个解决方案是编写一个抽象控制器类,该类被设置为最终控制器的父级。然后,该基类可以对登录用户执行检查