url twig fatal-error helpers silex

url - Silex & Twig helpers en páginas de error personalizadas



fatal-error (1)

Estoy luchando con un problema al intentar renderizar una página de error personalizada en Silex .

De acuerdo con lo que encontré en este enlace: http://refactoring.us/silex/custom-error-pages-with-silex-and-twig/

Estoy tratando de configurar una página de error 404 personalizada en mi aplicación. Todo funciona bien hasta que empiece a usar ayudantes en mi plantilla de ramas.

Un código ejemplar para la plantilla de página de error 404 es el siguiente:

{% 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 %}

Código PHP para el manejo de errores en mi aplicación 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); });

Una vez que elimino

{{ url(''home'') }} (¡Este asistente y la ruta funcionan perfectamente en otros casos!) Obtengo el sitio procesado correcto, pero sin las traducciones.

Con el ayudante, aparece el siguiente error:

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

Así que necesito una guía aquí sobre cuál podría ser la posible razón detrás de esto que está causando esto y los pasos para resolver este problema. Toda ayuda apreciada.


Este no es un problema de Silex (a partir de ahora) - Todo funciona perfectamente de mi lado ( Silex 1.2)

¿Has registrado el UrlGeneratorServiceProvider en tu aplicación?

en web/index.php :

$app->register(new Silex/Provider/UrlGeneratorServiceProvider());

Y realmente debería usar path() lugar de url() en este caso:

{{ path(''home'') }}