Я работаю с Symfony 2.1. Я хочу настроить процедуру переадресации в зависимости от входа пользователя в систему или нет. Я проверяю это $User->isLoggedIn()
, где User
- это услуга.Перенаправление на различные действия в зависимости от состояния пользователя
Я хочу сделать это до того, как контроллер выполнит. У меня мало других вещей, которые происходят непосредственно перед выполнением Controller. Я использую событие: kernel.controller
из kernel.event_listener
, чтобы сделать это. Но я понял, что я не могу перенаправить URL-адрес с помощью этого события.
Я понимаю, что мне нужно использовать событие: kernel.request kernel.event_listener, чтобы иметь возможность перенаправлять URL-адрес.
Проблема. Я использую следующую логику, чтобы выяснить, нужно ли мне перенаправлять или нет.
if (!$controller[0] instanceof NoLogInNeededInterface) {
if (!$User->isLoggedIn()) {
//redirect here
}
}
Так, в kernel.request
случае, $controler[0]
не доступен. В событии kernel.controller
ответ не может быть установлен (будет проигнорирован).
У кого-то такая же проблема и решена. Или есть лучший способ сделать то, что я пытаюсь сделать?
в качестве боковой подсказки: если вы начинаете с нового проекта, используйте Symfony2.2. Symfony 2.0 больше не поддерживается –
Спасибо. Фактически получили 2,1. Я отредактирую. – Webghost