相关疑难解决方法(0)

Symfony2重定向事件监听器?

我有一个内核事件监听器设置(kernel.controller)来重定向用户,如果他没有登录.事件监听器成功被调用,但是我很难搞清楚如何重定向.这是我得到的:

$cont = $event->getController('testpost');
$event->setResponse($cont);
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

Fatal error: Call to undefined method Symfony\Component\HttpKernel\Event\FilterControllerEvent::setResponse() 
Run Code Online (Sandbox Code Playgroud)

php symfony

31
推荐指数
2
解决办法
4万
查看次数

Symfony2:在页面加载事件监听器中获取路由

如何在页面加载甚至监听器中获取路由?

我在services.yml中有以下代码:

    page_load_listener:
    class: Acme\MainBundle\EventListener\PageLoadListener
    arguments: [@security.context, @session]
    tags:
        - { name: kernel.event_listener, event: kernel.controller, method: onKernelController, priority: 64 }
Run Code Online (Sandbox Code Playgroud)

在PageLoadListener类中,我有相应的方法:

    public function onKernelController(FilterControllerEvent $event)
    {

        // Some code I need to execute that needs the route arguments

    }
Run Code Online (Sandbox Code Playgroud)

问题似乎是路由和参数不可用.我错过了什么?

我需要通过哪个事件来获取路线及其参数?

谢谢,

JB

php symfony

13
推荐指数
1
解决办法
1万
查看次数

使用事件侦听器重定向所有"找不到404路由未找到 - NotFoundHttpException"

如何在事件侦听器中触发重定向到特定路由器?

有很多例子,但我找不到一个"GetResponseForExceptionEvent".例如,当我@roter作为参数传递时$this->router....似乎没有这样做.

我检查了这些但我可能错过了一些东西:

service.yml

services:
    kernel.listener.kernel_request:
        class: Booking\AdminBundle\EventListener\ErrorRedirect
        tags:
            - { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
Run Code Online (Sandbox Code Playgroud)

事件监听器:

namespace Booking\AdminBundle\EventListener;

use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

class ErrorRedirect
{
    public function onKernelException(GetResponseForExceptionEvent $event)
    {
        $exception = $event->getException();

        if ($exception instanceof NotFoundHttpException) {
            // redirect to '/' router or '/error'
            //$event->setResponse(...........);
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

symfony

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

symfony ×3

php ×2