Symfony2 - Twig - 显示数据的问题

时间:2015-02-13 22:18:18

标签: symfony twig

我运行了返回相当多数据的查询。在我的控制器中我做了

public function viewAction()
{
        $repository = $this
            ->getDoctrine()
            ->getManager()
            ->getRepository('NickAlertBundle:AvailabilityAlert');

        $alerts = $repository->getAllActiveAlerts();
        var_dump($alerts);

        return $this->render('NickAlertBundle:Page:view.html.twig', array(
            'alert' => $alerts,
        ));
}

var_dump包含我需要的数据,它看起来像

array (size=2)
  0 => 
    array (size=4)
      0 => 
        object(Nick\AlertBundle\Entity\AvailabilityAlert)[320]
          private 'id' => int 34
          private 'searchCommand' => string 'LONMEL' (length=12)
          private 'isConnecting' => string 'no' (length=2)
          private 'lastUpdated' => 
            object(DateTime)[323]
              ...
          private 'isDeleted' => boolean false
          private 'alertStatus' => string 'Active' (length=6)
      'classes' => string 'Business' (length=3)
      'flight_number' => string 'VS7' (length=3)
  1 => 
    ....

如何在Twig文件中显示此数据?我试过了

{{ alert.getSearchCommand() }}
{{ alert.searchCommand }}
{{ alert }}

但大部分时间我都收到以下错误:

  

在渲染模板期间抛出异常("注意:数组到字符串转换")

所以我想知道如何才能正确显示这些数据?

1 个答案:

答案 0 :(得分:4)

你需要遍历你的数组。你可以用树枝for

来做

在你的情况下,像这样:

在控制器中:

我将您的变量从警报重命名为警报,因为可以有多个。

return $this->render('NickAlertBundle:Page:view.html.twig', array(
    'alerts' => $alerts,
));

在您的twig文件中:

{% for alert in alerts %}
    //here you can access your entity
    {{ alert.searchCommand }}
{% endfor %}