【问题标题】:Exception only shown on DEV env. symfony2仅在 DEV 环境中显示的异常。 symfony2
【发布时间】:2014-05-27 18:39:30
【问题描述】:

我有小问题。 我已经覆盖了 app/Resources/TwigBundle/Resources/Exception 中的所有 html 异常模板...

我的问题是,这些错误页面仅在我使用开发环境时才会呈现。 说到 prod,我会得到类似的东西:

http://i.stack.imgur.com/GHd7t.png

请帮帮我。

【问题讨论】:

  • routing_dev.yml 而不是 routing.yml 中定义/导入 /dupa2 路由?清除缓存? app/console cache:clear --env=prod
  • 是的,我做到了,但还是一样。我设法做了下面的建议,这对我有用。提前谢谢!

标签: symfony exception http-status-code-404


【解决方案1】:

您可以通过注册一个监听 kernel.view 事件的服务来实现。

在你的 service.yml 中:

your.kernel_listener:
    class: Your\AppBundle\EventListener\KernelListener
    arguments: [@kernel]
    tags:
        - { name: kernel.event_listener, event: kernel.view, method: onKernelView }

在你的类 KernelListener 中:

namespace Your\AppBundle\EventListener;    

use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
use Symfony\Component\HttpFoundation\Response;

class KernelListener
{
    private $kernel;

    public function __construct(Kernel $kernel)
    {
        $this->kernel = $kernel;
    }        

    public function onKernelView(GetResponseForControllerResultEvent $event)
    {
        if ($this->kernel->getEnvironment() == 'dev') {
            $result = $event->getControllerResult();
            $response = new Response(print_r($result, true), 200, array('Content-Type' => 'text/html'));
            $event->setResponse($response);
        }
    }
}

看看this guide

【讨论】:

    猜你喜欢
    • 2014-06-13
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多