2011-08-22 19 views
5

En mi layout.html.twig tengo una barra de navegación con algunos enlaces. Quiero que los enlaces se llenen desde una base de datos.Symfony2 - llene la barra de navegación en layout.html.twig en cada solicitud de página

Por ejemplo, en la barra de navegación tengo un menú desplegable de 'Productos recientes'. ¿Cómo puedo llenar el menú desplegable del layout.html.twig principal desde una base de datos? (por supuesto, se almacenará en caché en el futuro)

¿Necesito crear un filtro?

Cualquier ayuda sería genial. Gracias

Nota: En Symfony 1.4 habría utilizado un componente. ¿Esto existe en Symfony 2?

Respuesta

10

la respuesta está aquí: http://symfony.com/doc/2.0/book/templating.html#embedding-controllers

que necesitaba para crear un sub-controlador y luego integrar la vista sub-controlador en el diseño principal ramita.

+1

Observo que al usar este método, debe crear una nueva ruta a su barra lateral. ¿Esto significa que (por ejemplo) 'http: // mysite/sidebar' es un uri de acceso público y cargará una página donde solo está visible su barra lateral? Parece complicado tener un uri para cada menú de tu aplicación. ¿Hay alguna manera de bloquear ese acceso, excepto por las solicitudes internas? – cartbeforehorse

+0

¿Hay alguna solución, como crear un servicio para manejar la navegación? no quiero ensuciar el controlador de carpetas con la navegación – GusDeCooL

2

¿Has echado un vistazo @ al paquete de menú knplabs? https://github.com/knplabs/KnpMenuBundle

están haciendo exactamente lo que usted desea ... busque en la fuente para ver cómo lo logran.

+2

Hola Flask, tengo, pero todo lo que quiero hacer es agregar un menú simple de un marcado que ya tengo. Encontré la solución: http://symfony.com/doc/2.0/book/templating.html#embedding-controllers que necesitaba incrustar un controlador. Todo está funcionando perfectamente. ¡Gracias! – Flukey

Cuestiones relacionadas