Symfony 2.4 Tutorial :: Datenbank-Tabelle anzeigen (CRUD)

Das 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.

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 ein neuer Ordner Entity in unserem Bundle sowie die Datei "Phonelist.php" erzeugt!
php app/console doctrine:generate:entity --entity=EfiBlogBundle:Phonelist

Wir 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.
...
Instead of starting with a blank entity, you can add some fields now.
Note that the primary key will be added automatically (named id).
Available types: array, simple_array, json_array, object,
boolean, integer, smallint, bigint, string, text, datetime, datetimetz,
date, time, decimal, float, blob, guid.
New field name (press <return> to stop adding fields): vorname
Field type [string]:
Field length [255]:
New field name (press <return> to stop adding fields): nachname
Field type [string]:
Field length [255]:
New field name (press <return> to stop adding fields): telefon
Field type [string]:
Field length [255]:
...


symfony entitiy anlegen

2. Die Tabelle erzeugen

Jetzt erstellen wir die Tabelle in unserer MySQL Datenbank mit folgendem Kommando:
php app/console doctrine:schema:update --force

Das Resultat prüfen wir mit dem sqlYOG.
Bei dieser Gelegenheit kann man auch gleich ein paar Testdaten eingeben!

symfony2 doctrine sqlyog

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 doctrine:generate:crud erzeugen wir also einen Controller und die entsprechenden Views.
php app/console doctrine:generate:crud --entity=EfiBlogBundle:Phonelist

Jetzt sollte die Telefonliste über die URL http://webprojekt.localhost/app_dev.php/phonelist aufrufbar sein. Allerdings stellen wir fest, dass unser Layout noch nicht mit dem neuen Twig-Views verbunden ist. Das holen wir jetzt gleich nach, in dem wir die Dateien in /src/Efi/BlogBundle/Resources/views/Phonelist/ anpassen.


TIPP:
Die Tabelle auf Class ".table" in der View einstellen. Siehe http://getbootstrap.com/css/#tables


 


Über uns

Wir sind ein agiles Team von Programmierern und haben uns auf Erweiterungen (extensions) für eine Vielzahl von Systemen spezialisiert. Unsere besondere Stärke ist das entwickeln von Erweiterungen für Shop-Systeme basierend auf dem Magento Framework oder die Entwicklung an Web-Anwendungen mit dem Symfony Framework. Eine weitere Stärke ist die Erweiterung von Content Management Systemen wie beispielsweise Wordpress, Typo3, Drupal und Joomla. Das entwickeln von Apps für Android, Windows und Apple OS Systemen ist selbstverständlich!