В проекте, над которым я работаю, мне нужно отобразить 5 последних новостных статей на сайте. В контроллере я написал следующий код:
$news = $repository->createQueryBuilder('p')
->Where('p.contenttype = :type')
->setParameter('type', 'newsarticle')
->orderBy('p.lastedit', 'ASC')
->getQuery();
$latestnews = $news->getResult();
По какой-то причине это не работает, так как я получаю сообщение об ошибке:
Элемент "url" для "Array" не существует в "ShoutMainBundle: по умолчанию: page.html.twig" в строке 34
Однако, когда я изменяю getResult();
на getSingleResult();
, он работает, но отображает только одну запись (что я и ожидаю, когда использую этот код).
Это то место, где я отклеиваюсь и растерялся из-за того, что я должен делать. Я погуглил «как отобразить несколько записей в Symfony», и я не нашел ответа. (Если ответ был там, я заранее извиняюсь за это). В обычном PHP я бы ожидал сделать цикл foreach (что-то похожее в любом случае), чтобы получить результаты, которые мне нужны. Но у меня также есть чувство, что для достижения того, чего я хочу, мне нужно что-то сделать в Twig. Но что мне нужно сделать, я не знаю.
Любая помощь с этим была бы очень признательна.
Спасибо
Edit:
Вот код шаблона, который используется для отображения этого:
<section id="latestnews">
<h2>Latest News</h2>
<ul>
<li><a href="..{{ news.url }}" title="Read {{ news.title }}" />{{ news.title }}</a></li>
</ul>
</section>