Symfony2/Twig - 输出数据数组

Symfony2/Twig - Outputting an array of data

我想知道做某事的最佳方法。我的控制器调用服务的函数。此函数获取一些 DOMDocument 内容,我不想将整个响应传递给 twig。所以我做的是这个

public function terminalService($terminal_command)
{
    $dom = new \DOMDocument('1.0', 'UTF-8');
    $responseData = $this->commandsService->executeSingleCommand($terminal_command);
    $dom->loadXML($responseData);

    $elements = $dom->getElementsByTagNameNS('http://www.test.com/ter_0', 'Text');

    $elNum = 0;
    $flightInfo = array();

    while ( $elNum < $elements->length ) {
        $flightInfo[] = $elements->item($elNum)->nodeValue;
        ++$elNum;
    }

    return $flightInfo;
}

因此,获取 DOMDocument,找到所有具有 Text 命名空间的元素,并将它们放入一个数组元素中。然后我的控制器接收这个数组,然后将它传递给视图

$commandData = $apiService->terminalService($terminal_command);

return $this->render('NickAlertBundle:Page:terminal.html.twig', array(
     'data' => $commandData,
));

如何让数组中的每个元素换行显示?在我看来我目前正在做

<div class="col-md-8" id="terminal-window">
    {% if data is defined %}
        {% for d in data %}
            {{ d|nl2br }}
        {% endfor %}
    {% endif %}
</div>

不过,它所做的只是在一个长字符串中显示所有内容。有趣的是,如果我转储数据,它会以我想要的方式显示它(但我显然不能在生产中这样做)。那么如何在自己的行中显示每个数组元素?

更新 转储以我希望的方式显示数据,例如

6 => "3*A$NZ9835 C4 D4 J4 Z4 B7 H7 M7 Y7 LHRLAX 1035 1350   *  777 0E"
7 => "           Q7 T7 V7 W7 G7 K7 L7 S7 "

如您所见,第 7 行显示有很多空格,以便正确格式化输出。如果我只是在输出的末尾放置一个中断,它会显示为

7 #AY4014 F9 A9 P9 J9 C9 D9 I9 Y9 LHRLAX 1215 1530 * 77W 0E
B9 H9 K9 M9 L9 V9 S9 N9 Q9 O9 G9 

有什么方法可以保留空格或复制转储的功能吗?

谢谢

由于您已经设置了大部分逻辑,我会将 for 循环更改为:

<div class="col-md-8" id="terminal-window">
    {% if data is defined %}
        {% for d in data %}
            <pre>{{ d }}</pre><br />
        {% endfor %}
    {% endif %}
</div>