Aby zrobić własne komunikaty z błędami (np: 404, 500) wystarczy nadpisać odpowiednie pliki szablonów w katalogu /templates/TwigBundle/Exception/:
1 2 3 4 5 6 7 8 9 10 |
templates/ └─ bundles/ └─ TwigBundle/ └─ Exception/ ├─ error404.html.twig ├─ error403.html.twig ├─ error.html.twig # All other HTML errors (including 500) ├─ error404.json.twig ├─ error403.json.twig └─ error.json.twig # All other JSON errors (including 500) |
Poszczególne strony błędów możesz skopiować z oryginalnej lokalizacji, czyli: /vendor/symfony/twig-bundle/Resources/views/Exception/.
W szablonach możemy użyć dwóch stałych, które zwracają:
- status_code – kod błędu np: 404,
- status_text – treść komunikatu z błędem.
Przykład:
Przygotuj szablon według poniższego wzoru.
/templates/TwigBundle/Exception/error.html.twig
1 2 3 4 5 6 7 8 |
{% extends 'base.html.twig' %} {% block title %}Error Page{% endblock %} {% block body %} <h1>ERROR: {{ status_code }}</h1> <h2>{{ status_text }}</h2> {% endblock %} |
Aby zobaczyć efekt musimy przełączyć się na wersję produkcyjną projektu. W tym celu edytuj w pliku .env flagę APP_ENV:
1 |
APP_ENV=prod |
Na koniec musisz zrobić coś, co spowoduje błąd; może to być np. zły adres strony 🙂