Problema con rutas en Symfony2

79 views
Skip to first unread message

Eloy González Andueza

unread,
Dec 12, 2013, 5:22:37 AM12/12/13
to symfo...@googlegroups.com, symfo...@googlegroups.com
Hola tengo un problema que no sé exactamente cómo resolverlo.

Tengo personalizada la página de error error404.html.twig. y si tengo la ruta definida funciona correctamente
Pongo un ejemplo que se entiende mejor.

tienda_homepage:
    path:  /
    defaults: { _controller: TiendaBundle:Default:index }   

material_detalle:
    path:  /material/{slug}
    defaults: { _controller: TiendaBundle:Default:materialdetalle }

Si entro en la ruta

 www.mipaginaweb/material/slug_producto_inventado

 me aparece la página personalizada de error porque no existe ese producto, hasta ahí todo correctamente.
 
Pero si introduzco la ruta por ejemplo
www.mipaginaweb/meloinvento
 
me tendría que aparecer la página de error personalizado pero en este caso me lanza este error

Fatal error: Uncaught exception 'Symfony\Component\Routing\Exception\ResourceNotFoundException' in /home/eloy/www/mipagina/app/cache/prod/appProdUrlMatcher.php:1381 Stack trace: #0 /home/eloy/www/mipagina/app/cache/prod/classes.php(1208): appProdUrlMatcher->match('/meloinvento') #1 /home/eloy/www/mipagina/app/cache/prod/classes.php(1870): Symfony\Component\Routing\Router->match('/meloinvento') #2 [internal function]: Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent)) #3 /home/eloy/www/mipagina/app/cache/prod/classes.php(1665): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\GetResponseEvent)) #4 /home/eloy/www/mipagina/app/cache/prod/classes.php(1598): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'kernel.request', Object(Symfony\Component\HttpKernel\Event\GetResponseEvent)) #5 /home/eloy/www/mipagina/app/cache/prod/classes.php(1762): Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request' in /home/eloy/www/mipagina/app/cache/prod/classes.php on line 1881


¿Cómo puedo hacer para que se muestre mi página de error personalizado para las páginas que no tienen una ruta asignada?

Un saludo y gracias

Eloy González

unread,
Dec 12, 2013, 5:52:50 AM12/12/13
to symfo...@googlegroups.com, symfo...@googlegroups.com

Hola:
Ya está solucionado , dejo la solución por si a alguien se encuentra en la misma situación.
El problema es que en la plantilla tenia  puesto is_granted('ROLE_USUARIO')
y el servidor de seguridad se ejecuta después del router. Router lanzará una excepción pero como el servidor de seguridad se ejecuta después lanzará otra excepción y por eso no redirige a mi página de error.
Para solucionarlo hay que poner
{% if app.user and is_granted('ROLE_USUARIO') %}

U saludo
Reply all
Reply to author
Forward
0 new messages