Symfony 4 - 自定义错误页面和错误消息

3

我希望在Symfony 4中创建自定义错误页面(404、403等),以便我有异常。

if (!$thisVarIsNull) {
    throw $this->createNotFoundException(
        'This is my custom message'
    );
}

我已经在位置 templates/bundles/TwigBundle/Exception/error.html.twig 创建了一个基本模板:

{% extends "base.html.twig" %}
{% block title %}
    We got a problem
{% endblock %}
{% block body %}
    <div>
        <p>
            {{ status_code }} :: {{ exception.message }}
        </p>
    </div>
{% endblock %}

但是exception.message没有返回任何东西。问题出在哪里?

2
你真的想把异常信息打印给用户吗?在我看来这是一个非常糟糕的想法...你设置了断点查看发生了什么吗? - Jim Panse
1
尝试转储 {{ exception }} 以查看其内容。 - revengeance
@JimPanse 好的,我需要显示两个错误:找不到特定记录和“检查”返回false。我该怎么做? - Paul
2个回答

4
你需要寻找的是{{ status_message }}而不是{{ exception.message }}

1
我检查了文档,没有变量exception
你只能获得两个东西
  • CODE - {{ status_code }}
  • STATUS_TEXT - {{ status_text }}

此外,当您遇到除404/403以外的所有错误时,将呈现error.html.twig。
请在同一文件夹中创建404/403的模板(template),否则将呈现默认模板。
  • error404.html.twig
  • error403.html.twig

您可以通过使用 /_error/{statusCode} 在开发中轻松测试所有内容...
例如:yoursite.com/_error/404

我非常确定异常消息确实有一个变量。它没有记录,因为通常您不希望直接向前端用户打印错误消息。 - Jim Panse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接