Assistants Silex & Twig dans les pages d’erreur personnalisées

Je suis aux sockets avec un problème en essayant de rendre une page d’erreur personnalisée dans Silex .

Selon ce que j’ai trouvé dans ce lien: http://refactoring.us/silex/custom-error-pages-with-silex-and-twig/

J’essaie de configurer une page d’erreur 404 personnalisée dans mon application. Tout fonctionne bien jusqu’à ce que je commence à utiliser des helpers dans mon template de brindilles.

Un exemple de code pour le modèle de page d’erreur 404 est le suivant:

 {% extends "layout.html.twig" %} {% block main %} 

{{ app.translator.trans('page404.title') }}

{{ app.translator.trans('page404.para1') }}

{% endblock %}

Code PHP pour la gestion des erreurs dans mon application 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); }); 

Une fois que j’enlève

  {{url ('home')}} 

(cette aide et cette route fonctionnent parfaitement dans d’autres cas!) J’ai le bon site rendu, mais sans les traductions.

Avec l’aide, j’obtiens l’erreur suivante:

 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 

J’ai donc besoin de quelques conseils sur ce qui pourrait être la cause possible de cela et les étapes pour résoudre ce problème. Toute aide appréciée.

Ce n’est pas un problème Silex (pour le moment) – Tout fonctionne parfaitement de mon côté ( Silex 1.2)

Avez-vous enregistré le UrlGeneratorServiceProvider dans votre application?

dans web/index.php :

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

Et vous devriez vraiment utiliser path() au lieu de url() dans ce cas:

 {{ path('home') }}