Я хочу создать свою настраиваемую страницу ошибок (404, 403 и т. д.) В Symfony 4, поэтому у меня есть исключение, например
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 ничего не возвращает. В чем проблема?
Попробуйте сбросить {{exception}}, чтобы увидеть его содержимое.
@JimPanse Хорошо, мне нужно показать 2 ошибки: не найдена конкретная запись и "проверка" вернула false. Как мне это сделать?






Хорошо, я проверил документы. Нет переменной исключение.
Вы можете получить только 2 вещи
Кроме того
error.html.twig будет отображаться, когда вы получите все ошибки, кроме 404/403.
Пожалуйста, также создайте шаблоны для 404/403 (в той же папке), иначе будут отображаться шаблоны по умолчанию.
Вы можете легко протестировать все, что находится в разработке, используя / _error / {statusCode} ...
Например: yoursite.com/_error/404
Я почти уверен, что для сообщения об исключении действительно существует переменная. Это не задокументировано, потому что обычно вы не хотите напрямую выводить сообщение об ошибке для внешнего пользователя.
Вы ищете {{ status_message }} вместо {{ exception.message }}.
Вы действительно хотите распечатать исключение для пользователя? На мой взгляд, очень плохая идея ... Вы установили точку останова, чтобы посмотреть, что произойдет?