Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2013, 16:09
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Symfony2 - Rellenar lista desde entidad en plantilla base...

Que tal compañeros, vengo a ustedes porque tengo un problema con symfony 2, verán, tengo poco de comenzar con el fw, y hasta ahora me las apaño bien leyendo por aquí y por allá, pero, ahora tengo un problema que no eh podido encontrar "solución"...

Lo que busco es rellenar una lista desordenada (ul/li) desde una entidad, PERO, que va a ser visible desde todo el front-end, vamos, en todos los controladores/acciones, por lo tanto me es ilógico tener que llamar a la entidad en cada acción, por lo tanto busco un método en el cual la plantilla sea la que tenga acceso a la entidad, eh estado leyendo sobre servicios y extensiones de twig, pero, no estoy seguro de si es lo que necesito y como implementarlo...

Servicios:

Eh creado un servicio (hasta donde comprendí) que llama a la entidad y obtiene los items necesarios, y lo eh registrado como variable global para twig, pero, no logro que funcione, al llamar a la variable y al método en cuestión el fw o twig deja de funcionar (sin enviar algún mensaje de error), simplemente ya no imprime ninguna linea después de donde hago la llamada (a la variable global y su método), básicamente ses como si colocara un die() o exit(), dejo lo que eh hecho...

Código YAML:
Ver original
  1. #rofana\ProfanaBundle\Resources\config\services.yml
  2. services:
  3.     appseries:
  4.         class: Profana\ProfanaBundle\Extensions\AppSeries
  5.         arguments: [@doctrine.orm.entity_manager]

Código YAML:
Ver original
  1. #app\config\config.yml
  2. twig:
  3.     debug:           %kernel.debug%
  4.     strict_variables: %kernel.debug%
  5.     globals:
  6.         appseries: @appseries

Código PHP:
Ver original
  1. <?php
  2.  
  3. namespace Profana\ProfanaBundle\Extensions;
  4.  
  5. use Doctrine\ORM\EntityManager;
  6.  
  7. use Profana\ProfanaBundle\Entity\Serie;
  8.  
  9. class AppSeries
  10. {
  11.     protected $em;
  12.  
  13.     function __construct(EntityManager $em) {
  14.         $this->em = $em;
  15.     }
  16.  
  17.     public function getLastfive() {
  18.         $entity = $em->getRepository('ProfanaBundle:serie');
  19.         $series = $entity->createQuery('SELECT p FROM ProfanaBundle:Serie p ORDER BY p.id DESC')
  20.                      ->setMaxResults(5);
  21.  
  22.         return  $series->getResult();
  23.     }
  24. }

Código TWIG:
Ver original
  1. <ul>
  2.                 <li class="web-base-submenu-header">Ultimas series agregadas</li>
  3.                 {% for lastseries in appseries.getLastfive() %}
  4.                 <li><a href="$">{{ lastseries.serie }}</a></li>
  5.                 {% else %}
  6.                 <li>No hay series aún!</li>
  7.                 {% endfor %}
  8.             </ul>
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 08/06/2013 a las 16:29