Symfony 4.4 Tutorial :: Datenbank-Tabelle anzeigen (CRUD)
Write a commentDas Ziel
Wir möchten eine einfache Telefonliste anlegen und auf unserer Page anzeigen!
An dieser Stelle empfehlen wir das SQLyog Tool, das man unter http://code.google.com/p/sqlyog/wiki/Downloads herunterladen kann. Es können natürlich auch der phpMyAdmin oder andere MySQL Tools verwendet werden.
Bevor man anfängt, schaut man in die Composer.json Datei rein.
Und ändert es wie folgt ab:
"doctrine/doctrine-bundle": "~1.12",
"doctrine/orm": "~2.7",
"doctrine/orm": "~2.7",
1. Tabellenstruktur (Entity Class)
In Symfony werden Tabellen über Entity Klassen erzeugt. Man kann natürlich auch Tabellen von Hand anlegen und diese dann über "reverse engineering" Technik einlesen.
Mit dem nachfolgenden Kommando wird eine neue Datei "PhoneList.php" sowie eine Datei "PhoneListRepository.php" in unserem src Verzeichnis erzeugt!
php bin/console make:entity PhoneListWir legen auch gleich die 3 Felder "vorname, nachname und telefon" an. Das ist nicht zwingend erforderlich spart aber jede Menge Arbeit, wenn man im Vorfeld schon weiß welche Felder man in seiner Tabelle haben möchte. Später können neue Felder manuell in der Klasse hinzugefügt werden.
created: src/Entity/PhoneList.php created: src/Repository/PhoneListRepository.php Entity generated! Now let's add some fields! You can always add more fields later manually or by re-running this command. New field name (press <return> to stop adding fields): vorname Field type [string]: Field length [255]: Is nullable [false]: New field name (press <return> to stop adding fields): nachname Field type [string]: Field length [255]: Is nullable [false]: New field name (press <return> to stop adding fields): telefon Field type [string]: Field length [255]: Is nullable [false]: ...
2. Die Tabelle erzeugen
Jetzt erstellen wir die Tabelle in unserer MySQL Datenbank mit folgendem Kommando:
php bin/console make:migration
Folgende Ausgabe sagt uns, dass eine Datei mit den benötigten SQL Befehlen erstellt wurde:
Next: Review the new migration "src/Migrations/Version20190425080023.php" Then: Run the migration with php bin/console doctrine:migrations:migrate
In der Migrations Datei können wir nun auch änderungen vornehmen, welche wir später mit dem Befehl "doctrine:migrations:migrate" einspielen. Mit dem oben genannten Befehl werden die verschiedenen php Dateien in dem Migrations Ordner überprüft und ausgeführt. Es wird allerdings nur ausgeführt, was in der Datenbank in der "migration_versions" Tabelle noch nicht hinterlegt ist.
Nachdem wir den obigen Befehl ausgeführt haben, können wir das Resultat in unserem jeweiligen Datenbank Tool einsehen und sollte wie folgt aussehen.
Bei dieser Gelegenheit können wir auch gleich ein paar Testdaten eingeben!
3. Die Tabelle anzeigen
Wir benötigen einen so genannten CRUD-Controller! CRUD ist die Abkürzung für Create Read Update und Delete. Der Crud Controller stellt die Verbindung zu unserer Entität dar und gibt die Daten aus der Tabelle an die View weiter.
Mit dem Kommando make:crud erzeugen wir also einen Controller und die entsprechenden Views.
php bin/console make:crud PhoneList
Jetzt sollte die Telefonliste über die URL http://testprojekt.localhost/phone/list aufrufbar sein.
Ist dies nicht der Fall, gehen wir in den PhoneListController im src Ordner. Hier sehen wir überhalb der class eine Route, diese muss aufgerufen werden. Hierbei ist wichtig, wird eine Entity mit Großbuchstaben erstellt, so wie wir es getan haben, wird die Rute automatisch mit "/" unterteilt.
Zudem stellen wir fest, dass unser Layout noch nicht mit dem neuen Twig-Views verbunden ist. Das holen wir jetzt gleich nach, indem wir die Dateien in /templates/phone_list/ anpassen.
TIPP:
Die Tabelle auf Class "table" in der View einstellen. Siehe https://getbootstrap.com/docs/3.3/css/#tables
Die Tabelle auf Class "table" in der View einstellen. Siehe https://getbootstrap.com/docs/3.3/css/#tables
You are a guest
or post as a guest
Loading comment...
The comment will be refreshed after 00:00.
Be the first to comment.