Doctrine 试图在symfony 2中显示单个数据库中的多条记录
在我正在进行的项目中,我需要在网站上显示5篇最新的新闻文章。在控制器中,我编写了以下代码: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')
$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()时
togetSingleResult()代码>它工作,但只显示一条记录(这是我使用该代码时所期望的)
这就是为什么我会手足无措,对自己应该做的事感到困惑。我在谷歌上搜索了“如何在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%}
不起作用;)哈哈,我现在知道了。非常感谢:)