2014-09-06 74 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>