Я борюсь с проблемой при попытке сделать страницу пользовательских ошибок в Silex
.
В соответствии с тем, что я нашел в этой ссылке: http://refactoring.us/silex/custom-error-pages-with-silex-and-twig/
Я пытаюсь настроить страницу ошибки 404 в моем приложении. Все работает нормально, пока я не начну использовать помощников в моем шаблоне ветки.
Примерный код для шаблона страницы ошибки 404 выглядит следующим образом:
{% extends "layout.html.twig" %}
{% block main %}
<div id="error404">
<h2>{{ app.translator.trans('page404.title') }}</h2>
<p>{{ app.translator.trans('page404.para1') }}</p>
<p class="btn-footer">
<a href="{{ url('home') }}" class="btn">{{ app.translator.trans('page404.button') }}</a>
</p>
</div>
{% endblock %}
PHP-код для обработки ошибок в моем приложении Silex:
$app->error(function (\Exception $e, $code) use($app) {
switch ($code) {
case 404:
$message = $app['twig']->render('error404.html.twig');
break;
default:
$message = $app['twig']->render('error500.html.twig');
}
return new Response($message, $code);
});
Как только я удалю
{{ url('home') }}(этот помощник и маршрут отлично работают в других случаях!) Я получаю соответствующий рендеринг сайта, но без переводов.
С помощником я получаю следующую ошибку:
Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\RouteNotFoundException' with message 'Route "" does not exist.' in D:\projects\projectname\application\vendor\symfony\routing\Symfony\Component\Routing\Generator\UrlGenerator.php:119 Stack trace:
#0 D:\projects\projectname\application\vendor\symfony\twig-bridge\Symfony\Bridge\Twig\Extension\RoutingExtension.php(45): Symfony\Component\Routing\Generator\UrlGenerator->generate(NULL, Array, false)
#1 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Environment.php(327) : eval()'d code(68): Symfony\Bridge\Twig\Extension\RoutingExtension->getPath(NULL, Array)
#2 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php(265): __TwigTemplate_ca53e56b87abd45da5c34a79d4c2ce34->doDisplay(Array, Array)
#3 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php(239): Twig_Template->displayWithErrorHandling(Array, Array)
#4 D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Envir in D:\projects\projectname\application\vendor\twig\twig\lib\Twig\Template.php on line 280
Поэтому мне нужно руководствоваться здесь, что может быть возможной причиной этого, что вызывает это, и шаги для решения этой проблемы. Вся помощь была оценена.