#database #symfony #twig
#База данных #symfony #twig
Вопрос:
Я совершенно новичок в Symfony, и я хотел бы знать, как мне удается отображать несколько наборов данных из моей базы данных в twig… до сих пор моя попытка заключается в следующем:
class ProjController extends Controller
{
/**
* @Route("/", name="_projekte")
* @Template("FHBingenBundle:projekte:list.html.twig")
*
*/
public function indexAction()
{
$projekte = $this->getDoctrine()
->getRepository('FHBingenBundle:Projekt')->findAll();
return $projekte;
}
}
чтобы получить все наборы данных. Вот где начинается моя проблема… как мне извлечь данные из массива? (объект имеет несколько столбцов, но мне нужны только два из них, имя и описание)
{% extends "FHBingenBundle::layout.html.twig" %}
{% block content %}
<table>
<?php foreach ($liste as $projekt ?>
<tr><p>{{ $projekt->getName() }}</p></tr>
<?php endforeach;?>
</table>
{% endblock %}
вот как я пытался это сделать, но, по-видимому, мне не разрешено использовать $ внутри {{}} ? по крайней мере, это то, что говорит ошибка
Ответ №1:
Вам следует подумать о чтении кулинарной книги.
Поскольку вы используете twig, подумайте об использовании системы шаблонов twig.
{% for item in navigation %} // equivalent to foreach($navigation as $item) {
{{ item.name }} // equivalent to $item->name or $item->getName() or $item->hasName()
{% endfor %} // equivalent to }
РЕДАКТИРОВАТЬ: я действительно не помню, но, похоже, вам нужно вернуть массив для системы шаблонов twig. return array('projects' => $projects);
Комментарии:
1. Вы правы насчет массива, возвращаемого контроллером. Это должно быть :
[$variableName => $variableValue]
. Вотfor
документация цикла: twig.sensiolabs.org/doc/tags/for.html