2014-09-06 73 views
0

我目前正在使用枝条模板库构建应用程序。PDO结果和枝条模板库

随着我的PDO声明我收到以下阵列:

Array 
    (
     [0] => Array 
      (
       [id] => 1 
       [artist] => Dena 
       [track] => Cash, Diamond Ring, Swimming Pools 
       [link] => http://www.youtube.com/watch?v=r4CDc9yCAqE 
      ) 

     [1] => Array 
      (
       [id] => 2 
       [artist] => Jessy Lanza 
       [track] => Kathy Lee 
       [link] => http://vimeo.com/73455369 
      ) 

     [2] => Array 
      (
       [id] => 3 
       [artist] => The Orwells 
       [track] => In my Bed (live) 
       [link] => http://www.youtube.com/watch?v=8tA_2qCGnmE 
      ) 
    ) 

但是当我通过数组树枝渲染,并试图输出在我的模板,如:

<ul> 
    {% for song in songs %} 
    <li>{{ song.artist }}</li> 
    {% endfor %} 
</ul> 

什么也没有发生,我知道这是因为数组有这个顶级父母,我不知道如何删除它。我现在尝试了几种不同的方法。任何想法如何解决这个问题?仅供参考,我将PDO作为关联数组返回,因为Twig似乎不接受对象。像这样:

$options = array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING); // Options for PDO 

我甚至在Twig语法中尝试了一些key =>值,但没有成功。像这样:

{% for key in array|keys %} 
    ... 
{% endfor %} 

这里是我的代码从数据库中获取数据:

/** 
* Get all songs from database 
*/ 
public function getAllSongs() 
{ 
    $sql = "SELECT id, artist, track, link FROM song"; 
    $query = $this->db->prepare($sql); 
    $query->execute(); 

    return $query->fetchAll(); 
} 
+0

尝试将1个更深一层 - >'

    {%用于songArray在歌曲%} {%歌曲在songArray%}
  • {{song.artist}}
  • {%endfor%} {%endfor%}
' – Sean 2014-09-06 18:20:37

+0

对不起,没有输出。 – Dueify 2014-09-06 18:30:47

+0

您是否尝试过使用您的联想阵列 - >'

    {%歌曲中的歌曲为%}
  • {{歌曲''artist']}}
  • {%endfor%}
' – Sean 2014-09-06 18:58:33

回答

1

我固定它,我不得不放弃我的阵列的名称,因此会承认它。从这:

$this->loadView('home/index', $songs); 

要这样:

$this->loadView('home/index', array('songs' => $songs)); 

然后我可以打印出来的数据通过写

<ul> 
    {% for song in songs %} 
    <li>{{ song.artist }}</li> 
    {% endfor %} 
</ul>