php - PDO结果和Twig模板库

标签 php mysql arrays pdo

我目前正在使用 Twig 模板库构建一​​个应用程序。

通过我的 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
            )
    )

但是当我将数组传递给 Twig 渲染并尝试在我的模板中输出时,如下所示:

<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 => value 但没有成功。就像这样:

{% 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();
}

最佳答案

我修复了它,我必须给我的数组一个名称,以便它能够识别它。从此:

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

对此:

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

然后我可以通过以下方式打印数据:

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

关于php - PDO结果和Twig模板库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703191/

相关文章:

php - 如何在 php 中使用 curl 下载文件?

PHP MYSQL $行[$变量]

php - 代码点火器 : Unable to load the requested file:

php - php.ini 中的 Extension 和 zend_extension 有什么区别?

mysql - 使用 R doParallel 或 foreach 从 mysql 并行获取数据

python - numpy - 对数组的每一行应用聚合

c - 将二维数组 (array[j][i]) 中的值输出到 Excel 中以形成包含 i 列和 j 行的表格

c - C中while循环中的数组

php curl ssl 错误号 35

mysql - 连接两个表以获得人员的最大登录时间