在以下示例中,使用 Doctrine 和 Symfony2 使用 getResult() 方法返回的数组的格式是什么:
$query = $this->_em->createQuery('SELECT p.id, p.nameProduct FROM ArkiglassProductBundle:Product p');
return $query->getResult();
我想知道如何访问每个案例并打印每一行。
<?php
$query = $em->createQuery('SELECT u.username, u.name FROM CmsUser u');
$users = $query->getResults(); // array of CmsUser username and name values
echo $users[0]['username'];
取自学说文档
您是在询问 $users[0] 中的“0”吗?我希望我没有误解你的问题。getResults() 返回一个数据库结果数组。为数组命名后,您可以使用索引访问每个元素。当然,如果你想循环它,你可能会使用一个 foreach 循环,这样你就不必使用索引:
$products = $query->getResults();
foreach ($products as $product){
echo $product->id.' '.$product->nameProduct;
}
这说......这个伪代码是为了解释。如果你使用 Symfony,你将不得不在视图文件中显示你的结果,可能像 Manuszep 在他的例子中那样使用 twig。在他的情况下,您将不得不像他一样使用 for in 循环。
查询返回一个用户数组:
array(
0 => array(username => 'aaa', name => 'bbb'),
1 => array(username => 'ccc', name => 'ddd')
)
所以 $users[0] 元素表示列表中的第一个用户。
您可以使用 for 循环进行迭代:
{% for user in users %}
{{ user.username }} - {{ user.name }}
{% endfor %}