Das Template zur Darstellung der Buchliste befindet sich im Verzeichnis \app\Resources\views\
Die in Symfony eingebettete Template Engine \emph{Twig} unterstützt aufeinander aufbauende Templates. Das Buchlisten-Template basiert auf das Basistemplate, welches in der Datei base.html.twig
in dem aktuellen Fall hinterlegt wurde:
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>{{ seitentitel }} - Buchregal</title> </head> <body> <h1>{{ seitentitel }} - Buchregal</h1> <hr> {% block body %}{% endblock %} </body> </html> |
Das Kommando {{ seitentitel }}
fügt die übergebene Variable seitentitel
in die HTML-Ausgabe, die aus dem Template gerendert wird, ein. Mit {% block body %} {% endblock %}
wird gekennzeichnet, dass hier ein Block namens body
eingefügt werden soll.
Innerhalb der Datei index.html.twig
wird nun den Block body
definiert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{% extends 'base.html.twig' %} {% block body %} <table border="1"> <tr><th>Autor</th><th>Titel</th><th>Geliehen von</th><th>Geliehen bis</th> </tr> {% for buch in buecher %} <tr> <td>{{ buch.autor }}</td> <td>{{ buch.titel }}</td> <td>{{ buch.entleiher }}</td> <td>{{ buch.vorraussichtlicheRueckgabeAm }}</td> </tr> {% endfor %} </table> {% endblock %} |
Dazu wird in der ersten Zeile angegeben, dass die Datei die base.html.twig
erweitern soll. Als nächstes wird der body
-Block definiert. Innerhalb des Blocks wird eine HTML-Tabelle gerendert. Für jedes erhaltene Buch wird innerhalb dieser Bereiches mit Hilfe einer in der Template-Sprache Twig definierten for
-Schleife, eine Tabellenzeile ausgegeben, indem auf die einzelnen Variablen des Buches zugegriffen wird.
Wenn nun die Applikation gestartet und aufgerufen wird, so sollte ein erstes Zwischenergebnis sichtbar werden. Die Liste der vorhandenen Bücher sollte erscheinen. Alle Bücher sind nicht ausgeliehen.