Symfony2:自定义"实体验证检查器"所有路线的控制器功能

时间:2014-04-14 13:00:17

标签: php symfony

PREMISE:系统上的所有用户都需要接受NDA和SLA并填写调查问卷。

条件:
1)整个系统(来自/)属于安全防火墙,以确定用户是否登录 2)^ /下的路由是匿名认证的 3)^ / portal / required ROLE_USER下的路由。

实施:我想在^ / portal /(包括/ portal /,/ portal / orders /,/ portal / admin /,/ portal / admin)下的所有路由上实现自定义检查器/ orders /等)检查用户是否已接受NDA,如果没有重定向到用户可以接受NDA的页面,则检查SLA,然后检查调查问卷。

问题:有没有办法在Symfony2中实现这一点,以便"检查"首先调用函数然后继续执行设置路由的实际控制器函数,而不是手动调用每个路径的每个控制器函数中的检查函数?

COMPLICATION:用户将被重定向到的NDA / SLA / QUESTIONNAIRE页面需要属于^ / portal /,因此这些页面也必须从检查中排除(在检查功能或以其他方式)以避免连续重定向。

1 个答案:

答案 0 :(得分:0)

到目前为止,我没有找到“通用”框架级实现。我可以实现的唯一解决方案是创建一个“检查器/重定向器”控制器函数,并在每个控制器函数的开头调用我希望在检查失败时重定向的页面。