我运行了返回相当多数据的查询。在我的控制器中我做了
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 }}
但大部分时间我都收到以下错误:
在渲染模板期间抛出异常("注意:数组到字符串转换")
所以我想知道如何才能正确显示这些数据?
答案 0 :(得分:4)
你需要遍历你的数组。你可以用树枝for:
来做在你的情况下,像这样:
我将您的变量从警报重命名为警报,因为可以有多个。
return $this->render('NickAlertBundle:Page:view.html.twig', array(
'alerts' => $alerts,
));
{% for alert in alerts %}
//here you can access your entity
{{ alert.searchCommand }}
{% endfor %}