在Symfony中禁用某个模块/操作中的过滤器

Dan*_*iel 4 symfony1 filter symfony-1.4

我有一个过滤器,查询数据库以检查用户名是否与密码匹配.如果返回false,则筛选器将重定向到"logout"操作.唯一的问题是它将进入无限循环,因为过滤器也适用于"注销"操作.

有什么方法可以"关闭"该操作的过滤器吗?

Ger*_*rry 7

您必须在过滤器内执行检查.您可以从$ this-> context-> getModuleName()和$ this-> context-> getActionName()获取当前模块和操作.或者您可以检查当前路由名称,$ this-> context-> getRouting() - > getCurrentRouteName().

事实上,sfBasicSecurityFilter完全相同,禁止转发登录操作.看看它的代码.