niestety napotkałem na następujący problem i szukam najlepszego rozwiązania:
Pobieram dane z bazy danych i chcę je wyświetlić w twig template, metoda jest uniwersalna - w zależności od podanej przez użytkownika nazwy zostanie wybrana z bazy danych inna tabela:
public function addAction(Request $request, $nameAction) { $em = $this->getDoctrine()->getManager(); switch ($nameAction) { case 'categories': $tableName = 'Categories'; $objEntity = new Categories(); break; ... } $query = $em->createQuery( "SELECT d FROM CoreBundle:$tableName d " ); $aDbData = $query->getResult(); 'aDbData' => $aDbData, ); }
W systemie template mogę odnieść się w ten sposób:
{% for i, objData in aDbData %} {{ objData.id }} {% endfor %}
jednakże nie wiem jaka faktycznie jest zawartość tabeli, która została wybrana, więc owo statyczne rozwiązanie nie ma prawa bytu,
dlatego postanowiłem użyć dodatkowej pętli, niestety nie wyświetla nic:
{% for i, objData in aDbData %} {% for j in objData %} {{ j }} {% endfor %} {% endfor %}
Czy wiecie jak można bezpośrednio odnieść się do owych danych?
W teorii można dopisać w PHP funkcję, która będzie pobierać nazwy, po czym owe dane dosyłać w kolejnej tablicy - zmiennej, jednak wydaje mi się to niezsensowne (dochodzi wtedy także zabawa z uzyskiwaniem dostępu do 'private' przed przekazaniem do tablicy).