Symfony getResult()方法原则

Symfony getResult()方法原则,symfony,doctrine,row,Symfony,Doctrine,Row,在以下示例中,使用Doctrine和Symfony2,使用getResult()方法返回的数组的格式是什么: $query = $this->_em->createQuery('SELECT p.id, p.nameProduct FROM ArkiglassProductBundle:Product p'); return $query->getResult(); 我想知道如何访问每个案例并打印每一行。查询返回一个用户数组: <?php $query

在以下示例中,使用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'];
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 %}
您是否在询问$users[0]中的“0”? 我希望我没有误解你的问题。 getResults()返回数据库结果数组。一旦给数组命名,就可以使用索引访问每个元素。 当然,如果您想在其上循环,您可能会使用foreach循环,因此不必使用索引:

$products = $query->getResults();
foreach ($products as $product){
    echo $product->id.' '.$product->nameProduct;
}
这是说。。。这里的伪代码是为了解释。如果您使用的是Symfony,那么您必须在视图文件中显示结果,可能像Manuszep在他的示例中那样使用细枝。
在他的情况下,你必须像他那样使用for-In循环。

是的,我知道,我已经红色了那部分,但我不清楚“0”是什么意思以及如何在循环中打印所有结果,我同意你的帮助你应该使用$product->getId()和$product->getNameProduct();这些都是公开的方法。您无法访问$product->id和$product->nameProduct,因为它们是私有的。