在 Symfony 4.4 中实现自定义错误控制器

Posted

技术标签:

【中文标题】在 Symfony 4.4 中实现自定义错误控制器【英文标题】:Implement a custom error controller in Symfony 4.4 【发布时间】:2021-01-22 06:34:01 【问题描述】:

我做了什么:

我创建了这个自定义控制器,因为我想向错误页面传递一些额外的变量。

#Controller/CustomErrorControler.php
namespace App\Controller;

use App\Controller\Base\BaseController;
use Symfony\Component\ErrorHandler\Exception\FlattenException;
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;

class CustomErrorController extends BaseController


    public function show(FlattenException $exception, DebugLoggerInterface $logger = null)
    
        return $this->getView('bundles/TwigBundle/Exception/error.html.twig', [
            "code" => $exception->getStatusCode(),
            "message" =>$exception->getStatusText()
        ]);
    

和启用

#config/packages/framework.yaml
error_controller: App\Controller\CustomErrorController::show

我直接按照文档进行了操作。我的问题是,对于非生产阶段,我需要获取框架提供的默认异常模板。

我已尝试扩展 Symfony\Component\HttpKernel\Controller\ErrorController,但我遇到了自动装配错误。

也许我应该使用Symfony\Component\ErrorHandler\ErrorRenderer\ErrorRendererInterface 有什么想法可以实现吗?

【问题讨论】:

【参考方案1】:

通过使用不同的framework.yaml 来解决它

【讨论】:

以上是关于在 Symfony 4.4 中实现自定义错误控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何在黄瓜中实现自定义监听器?

Symfony 4.4 - 自定义错误模板不起作用

如何在Canvas中实现自定义路径动画

如何在Canvas中实现自定义路径动画

在具有条件的 keras 中实现自定义损失函数

为啥不推荐使用 JScript 在 WiX 中实现自定义操作?