Как отобразить несколько наборов данных в Symfony2

#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