Doctrine 试图在symfony 2中显示单个数据库中的多条记录

Doctrine 试图在symfony 2中显示单个数据库中的多条记录,doctrine,symfony,twig,Doctrine,Symfony,Twig,在我正在进行的项目中,我需要在网站上显示5篇最新的新闻文章。在控制器中,我编写了以下代码: $news = $repository->createQueryBuilder('p') ->Where('p.contenttype = :type') ->setParameter('type', 'newsarticle') ->orderBy('p.lastedit', 'ASC')

在我正在进行的项目中,我需要在网站上显示5篇最新的新闻文章。在控制器中,我编写了以下代码:

      $news = $repository->createQueryBuilder('p')
          ->Where('p.contenttype = :type')
          ->setParameter('type', 'newsarticle')
          ->orderBy('p.lastedit', 'ASC')
          ->getQuery();

      $latestnews = $news->getResult();
由于某种原因,这不起作用,因为我收到了错误消息:

第34行的“ShoutMainBundle:Default:page.html.twig”中不存在“Array”的项目“url”

但是,当我更改
getResult()时
to
getSingleResult()它工作,但只显示一条记录(这是我使用该代码时所期望的)

这就是为什么我会手足无措,对自己应该做的事感到困惑。我在谷歌上搜索了“如何在symfony中显示多条记录”,但我没有找到答案。(如果答案已经给出,我会为此提前道歉)。在普通的PHP中,我希望做一个foreach循环(无论如何类似的事情)来获得我需要的结果。但我也有一种感觉,为了实现我想要的,我需要在细枝上做些什么。但我不知道我需要做什么

在此方面的任何帮助都将不胜感激

谢谢

编辑: 以下是用于显示以下内容的模板代码:

            <section id="latestnews">
            <h2>Latest News</h2>
            <ul>
                <li><a href="..{{ news.url }}" title="Read {{ news.title }}" />{{ news.title }}</a></li>
            </ul>
        </section>

最新消息

在模板中,您正在查找未找到的对象。它正在数组对象中查找url,但它不存在。我想你需要做一个检查,看看数组中是否存在这种情况,然后回显它是否存在。比如if(news.url)echo news.url


很明显,它的语法可能不太准确,我对twig不太熟悉,但与之类似。

在您的模板中,您正在寻找一个未找到的对象。它正在数组对象中查找url,但它不存在。我想你需要做一个检查,看看数组中是否存在这种情况,然后回显它是否存在。比如if(news.url)echo news.url


很明显,可能没有那么精确的语法,我对twig不太熟悉,但与之类似。

您的代码尝试读取变量
news
,并假设该变量具有字段
url
title
。如果控制器返回一个数组,则必须将
news
作为一个数组进行遍历

<section id="latestnews">
  <h2>Latest News</h2>
  <ul>
  {% for news in latestnews %}
   <li><a href="..{{ news.url }}" title="Read {{ news.title }}" />{{ news.title }}</a></li>
  {% endfor %}
  </ul>
</section>

最新消息
    {latestnews%中的新闻为%s}
  • {%endfor%}

您的代码尝试读取变量
新闻
,并假设此变量具有字段
url
标题
。如果控制器返回一个数组,则必须将
news
作为一个数组进行遍历

<section id="latestnews">
  <h2>Latest News</h2>
  <ul>
  {% for news in latestnews %}
   <li><a href="..{{ news.url }}" title="Read {{ news.title }}" />{{ news.title }}</a></li>
  {% endfor %}
  </ul>
</section>

最新消息
    {latestnews%中的新闻为%s}
  • {%endfor%}

您需要循环遍历Twig中的“新闻”结果数组

{% for n in news %}

    <li><a href="..{{ n.url }}" title="Read {{ n.title }}" />{{ n.title }}</a></li>

{% endfor %}
{%n在新闻%}
  • {%endfor%}
    您需要循环遍历Twig中的“新闻”结果数组

    {% for n in news %}
    
        <li><a href="..{{ n.url }}" title="Read {{ n.title }}" />{{ n.title }}</a></li>
    
    {% endfor %}
    
    {%n在新闻%}
    
  • {%endfor%}
    请显示模板代码。我已将模板代码放在上面。请显示模板代码。我已将模板代码放在上面。这很混乱,因为查询本身可以工作(如使用getSingleRecord()时所显示的,当使用getRecord()时它会抱怨。这很混乱,因为查询本身可以工作(如使用getSingleRecord()时所示,当使用getRecord()时,它会抱怨。感谢您的解释。我使用了您的代码,但仍然失败,但交换了“新闻”和“最新新闻”,并将“最新”添加到“新闻”的所有引用中。)修复了这个问题,现在我的新闻文章显示出来了。非常感谢!当然,你需要调整变量名-
    {%for news in news%}
    将不起作用;)哈哈,我现在知道了。非常感谢:)谢谢你的解释。我使用了你的代码,但仍然失败了,但是交换了“news”和“latestnews”,并添加了“latest”“新闻”的所有引用修复了这个问题,现在我的新闻文章显示出来了。非常感谢!当然,你需要调整变量名-
    {%for news in news%}
    不起作用;)哈哈,我现在知道了。非常感谢:)