getResult()方法Doctrine

时间:2013-05-30 13:43:44

标签: symfony doctrine row

使用Doctrine和Symfony2在以下示例中使用getResult()方法返回的数组的格式是什么:

$query = $this->_em->createQuery('SELECT p.id, p.nameProduct FROM ArkiglassProductBundle:Product p');
        return $query->getResult();

我想知道如何访问每个案例并打印每一行。

3 个答案:

答案 0 :(得分:4)

<?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'];

取自doctrine documentation

答案 1 :(得分:2)

查询返回用户数组:

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 %}

答案 2 :(得分:2)

你在询问&#34; 0&#34;在$ users [0]? 我希望我不会误解你的问题。 getResults()返回数据库结果数组。在为数组命名后,您可以使用索引访问每个元素。 当然,如果你想循环它,你可能会使用foreach循环,所以你不必使用索引:

$products = $query->getResults();
foreach ($products as $product){
    echo $product->id.' '.$product->nameProduct;
}

这说...这个伪代码在这里是为了解释。如果您正在使用Symfony,则必须在视图文件中显示结果,可能使用像Manuszep在他的示例中所做的那样。 在他的情况下,你将不得不像他一样使用for循环。