Отключить фильтр в определенном модуле / действии в Symfony - PullRequest
4 голосов
/ 28 августа 2011

У меня есть фильтр, который запрашивает базу данных, чтобы проверить, совпадает ли имя пользователя с паролем. Если он возвращает false, фильтр перенаправляет на действие «logout». Единственная проблема состоит в том, что он войдет в бесконечный цикл, потому что фильтр применяется и к действию «выход из системы».

Можно ли как-нибудь отключить фильтр только для этого действия?

1 Ответ

7 голосов
/ 28 августа 2011

Вам придется выполнить проверку внутри фильтра.Вы можете получить текущий модуль и действие из $ this-> context-> getModuleName () и $ this-> context-> getActionName ().Или вы можете проверить текущее имя маршрута, $ this-> context-> getRouting () -> getCurrentRouteName ().

Фактически sfBasicSecurityFilter делает то же самое, отключая пересылку для действия входа в систему.Посмотрите на его код.

...