私はSymfony2.1を使用しています。ユーザーがログインしているかどうかに応じてリダイレクトルーチンを設定したい。私がそれをチェックする方法は、サービスが$User->isLoggedIn()どこにあるかです。User
コントローラが実行される前にこれを実行したいと思います。Controllerが実行される直前に他に起こっていることはほとんどありません。私はevent:kernel.controllerofkernel.event_listenerを使用してそれらのことを行います。しかし、このイベントを使用してURLにリダイレクトできないことに気付きました。
URLにリダイレクトできるようにするには、kernel.event_listenerのevent:kernel.requestを使用する必要があることを理解しています。
問題。次のロジックを使用して、リダイレクトする必要があるかどうかを判断します。
if (!$controller[0] instanceof NoLogInNeededInterface) {
if (!$User->isLoggedIn()) {
//redirect here
}
}
そのため、kernel.requestイベントで$controler[0]は、利用できません。そのkernel.controller場合、応答を設定できません(無視されます)。
誰かが同じ問題を抱えて解決しましたか?それとも、私がやろうとしていることを行うためのより良い方法はありますか?