Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Unable to find template "Error en Twig"

Estas en el tema de Unable to find template "Error en Twig" en el foro de Symfony en Foros del Web. Un saludo a todos. Bueno mi problema es lo siguiente, y es que estoy experimentando un problema tratando de hacer referencia a una plantilla Twig ...
  #1 (permalink)  
Antiguo 24/02/2015, 09:09
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Exclamación Unable to find template "Error en Twig"

Un saludo a todos.

Bueno mi problema es lo siguiente, y es que estoy experimentando un problema tratando de hacer referencia a una plantilla Twig. Estoy utilizando el renderView método que es parte del controlador principal de Symfony, pero claramente no hace referencia al archivo al intentar realizar el render y me manda error.

Este es mi estructura de directorios/archivo:

Código HTML:
Ver original
  1. /src
  2.    /ProyectoSymfony
  3.       /PruebaSymfonyBundle
  4.          /Controller
  5.             DefaultController.php
  6.          /Entity
  7.             Link.php
  8.          /Resources
  9.             /views
  10.                /Templates
  11.                   /Calendar
  12.                       notificationemail.html.twig

y este es el método llamado por el router en DefaultController.php:

Código PHP:
Ver original
  1. $html = $this->renderView('PruebaSymfonyBundle:Templates:Calendar:notificationemail.html.twig', array());
  2. $response = new Response();
  3. $response->setContent($html);      
  4. $response->setStatusCode(200);
  5. $response->headers->set('Content-Description', 'HTML');
  6. $response->headers->set('Content-Type', 'text/html');      
  7. $response->headers->set('Content-Disposition', 'inline; filename='.$filename);
  8. return $response;

Pues no se si sea por la subcarpeta que creo que así no es el acceso para ver si alguien a tenido que realizar este mismo proceso para realizar render a un Twig dentro de una subcarpeta.
  #2 (permalink)  
Antiguo 24/02/2015, 09:42
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Unable to find template "Error en Twig"

Está mal ruteado. Usa:

Código PHP:
$html $this->renderView('PruebaSymfonyBundle:Calendar:notificationemail.html.twig', array()); 
Saludos :)
  #3 (permalink)  
Antiguo 24/02/2015, 09:46
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: Unable to find template "Error en Twig"

Si ya igual intente de esa manera, pero es que mi Twig esta esta ubicado de esta manera: Resources/views/Templates/Calendar/notificationemail.html.twig y menda el error de la ruta, o sea que esta ubicado entre dos carpetas.
  #4 (permalink)  
Antiguo 24/02/2015, 09:48
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: Unable to find template "Error en Twig"

Ahhh perdón! No vi lo de la carpeta intermedia. Probaste eliminándola a ver si funciona? Nunca creé subcarpetas dentro de views
  #5 (permalink)  
Antiguo 24/02/2015, 09:57
Avatar de DeivisAndres  
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 9 meses
Puntos: 41
Respuesta: Unable to find template "Error en Twig"

Si a si funciona pero la idea es esa que yo puede crear carpetas dentro de otra y relazar el render de mis Twig, pero tranquilo, buscando y buscando y miles de formas que probé pude resolverlo, y aqui pongo la manera de como resolverlo, y es algo simplemente sencilla:

Código PHP:
Ver original
  1. $html = $this->renderView('PruebaSymfonyBundle:Templates:Calendar/notificationemail.html.twig', array());

Y si hay mas subcarpetas seria lo mismo:

Código PHP:
Ver original
  1. $html = $this->renderView('MiBundle:Carpeta:Subcarpeta1/Subcarpeta2/plantilla.html.twig', array());

Y ese seria la solución

Etiquetas: find, template, unable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:20.