我正在尝试使用此处找到的 kernel.request 事件
我的示例的简化版本是重定向用户,除非他们已经在重定向页面上。我看到的问题是我得到一个没有任何样式的页面 - 似乎我的样式和 js 也可能被重定向。
这是代码
服务.yml
services:
app.RequestListener:
class: App\EventListener\RequestListener
arguments: [ @security.context ]
tags:
- { name: kernel.event_listener, event: kernel.request, method: redirectUser }
请求监听器.php
class requestListener
{
public function redirectUser()
{
if($event->getRequest()->getPathInfo() != '/') {
//app_frontend_home_index goes to '/'
$event->setResponse(new RedirectResponse($this->router->generate('app_frontend_home_index')));
}
}
}
我也试过这个我设置 ?test=dont_redirect 并且一旦设置它不应该重定向
public function redirectUser()
{
if(is_null($event->getRequest()->get('test'))) {
//app_frontend_home_index goes to '/'
$event->setResponse(new RedirectResponse($this->router->generate('app_frontend_home_index', array('test' => 'dont_redirect'))));
}
}
在阅读了我提供的链接中的部分后 - 听起来这是正确的事件。有没有办法让它工作?