Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2014, 08:02
El_LoBooo
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 0
Recorrer array anidado en twig

Hola a todos.

Soy novato en Symfony2. Estoy tratando de mostrar todos los valores de un array anidado en otro array (trabajo con MongoDB pero el sistema pienso que sería igual para un array obtenido por medio de DQL). El array es el siguiente:

Código:
array (size=1)
  0 => 
    object(Dariboo\CursosBundle\Document\Cursos)[348]
      protected 'id' => string '5384c3ca5e5c3bc8cc152f4d' (length=24)
      protected 'nombre' => string 'Curso de PHP + MySQL con certificado' (length=36)
      protected 'slug' => string 'curso-php-mysql-con-certificado' (length=31)
      protected 'keywords' => 
        array (size=3)
          0 => string 'curso php' (length=9)
          1 => string 'curso' (length=5)
          2 => string 'MySQL' (length=5)
      protected 'descripcionCorta' => string 'bla bla bla...' (length=14)
      protected 'descripcion' => string 'bla bla larga bla bla bla bla bla bla bla bla bla bla bla' (length=57)
      protected 'fechaInicio' => string '-2012' (length=5)
      protected 'fechaFinal' => string '-2001' (length=5)
      protected 'telefono' => string '915604234' (length=9)
      protected 'fax' => string '915690948' (length=9)
      protected 'direccion' => string 'C/ Atapuerca, 12 1º-C' (length=22)
      protected 'horas' => int 15
      protected 'numeroPlazas' => string '50' (length=2)
      protected 'onlinePresencial' => string 'online' (length=6)
      protected 'precio' => string '32.4' (length=4)
      protected 'rutafoto' => string 'curso1.jpg' (length=10)
      protected 'ciudad' => string 'Madrid' (length=6)
      protected 'provincia' => string 'Madrid' (length=6)
      protected 'pais' => string 'España' (length=7)
      protected 'codigoPostal' => string '28255' (length=5)
      protected 'organizador' => string 'Academia de informática Escorial'
Y lo que trato de obtener son los valores de "keywords".

El controlador es el siguiente:

Código PHP:
public function tagsAction($tags)
    {    
        
$repository $this->get('doctrine_mongodb')
            ->
getManager()
            ->
getRepository('CursosBundle:Cursos');
        
        
$cursos $repository->findByKeywords($tags);
        
        if (!
$cursos) {
            throw 
$this->createNotFoundException('No curso found for id '.$tags);
        }
        
        return 
$this->render('CursosBundle:Etiquetas:cursosTags.html.twig', array('cursos' => $cursos));
    } 
Y el twig:

Código HTML:
{% for curso in cursos %}
		<div class="floatleft" id="curDetWrapper">			
			<section class="box" id="curDetBox">					
				<div class="floatleft" id="curDetImg">
					<img alt="{{ curso.nombre }}" src="{{ asset('images/cursos/' ~ curso.rutafoto) }}" />
				</div>									
				<div class="floatleft" id="curDetCarac">
					<ul>	
						<h2 class="curDetNom">{{ curso.nombre }}</h2>
						<li><span class="curDetOrg"></span><span class="curDetOrgDesc">{{ curso.organizador }}</span></li>
						<li><span class="curAmbito"></span><span class="curAmbitoDesc">{{ curso.onlinePresencial }} ({{ curso.horas }} horas)</span></li>
						<li><span class="curDetHor"></span><span class="curDetHorDesc">Del <strong>{{ curso.fechaInicio }}</strong> al <strong>{{ curso.fechaFinal }}</strong> </span></li>
					</ul>
					<div class="curDetObj"><ul><li>Aprenderás los conocimientos necesarios para convertirte en el Brand Management que las empresas necesitan. Todos los alumnos tienen acceso a un tutor online para cualquier tipo de consulta de carácter académico.</li></ul></div>							
					
						{{dump(cursos)}}
						
				</div>
			</section>			
		</div>
    {% endfor %}
Si siempre tuviera el mismo número de valores los podría obtener con {{ curso.keywords[0]}}{{ curso.keywords[1]}}{{ curso.keywords[2]}}, pero el número de éstos es variable, debería iterar para obtenerlos de forma dinámica. Lo he intentado de muy diferentes formas entre ellas:

Código HTML:
{% for cur in curso %}
		{{cur.keywords}}							
	{% endfor %}
Pero obtengo valores vacíos.

Llevo atascado bastante en esto y no creo que deba ser tan difícil. ¿Alguien podría echarme una mano?

Gracias.