Background Decoration
14.2.2026Dietrich Bojko5 Min. Lesezeit

Contao 5 Doctrine Relations: Wir bauen die Buchungs-Logik

Zurück zur Übersicht
Contao 5 Doctrine Relations: Wir bauen die Buchungs-Logik
Verbindungslinien zwischen Benutzer und Objekt
44 Views

Häufig gestellte Fragen (FAQ)

Doctrine kümmert sich um die Datenbank-Integrität (das Speichern). Das DCA kümmert sich um das User Interface (das Anzeigen). Ohne foreignKey im DCA wüsste Contao nicht, dass es ein Dropdown-Menü generieren soll, auch wenn die Contao 5 Doctrine Relations im Hintergrund existieren.
Das bedeutet, dass beide Seiten voneinander wissen. Die Buchung kennt ihren Strandkorb ($booking->getBeachChair()), und der Strandkorb kennt alle seine Buchungen ($chair->getBookings()). Das ist extrem hilfreich für Auswertungen, z.B. "Zeige alle Buchungen von Strandkorb 7".
Ja, Contao 5 Doctrine Relations unterstützen auch n-zu-m (z.B. Ein Strandkorb hat viele Ausstattungsmerkmale, und ein Merkmal gehört zu vielen Strandkörben). Das erfordert eine JoinTable, funktioniert aber nach dem gleichen Prinzip.

Zusammenfassung & Ausblick

Du hast Contao 5 Doctrine Relations erfolgreich implementiert.

  • Die Booking Entity referenziert BeachChair.

  • Die Datenbank sichert die Verbindung (Foreign Keys).

  • Im Backend kannst du jetzt Buchungen anlegen und Strandkörbe per Dropdown auswählen.

Registriere noch die Tabelle tl_booking in deiner config.php (wie in Teil 3), leere den Cache und probiere es aus!

Das Problem: Aktuell verhindert niemand, dass ich Strandkorb 1 vom 01.08. bis 05.08. buche, obwohl er da schon belegt ist. Das ist ein Job für echte Business-Logik. Im nächsten Teil verlassen wir die Konfiguration und programmieren einen intelligenten Service.

Nächster Artikel: Business-Logik & Services programmieren

Dietrich Bojko
Über den Autor

Dietrich Bojko

Senior Webentwickler

Webinteger arbeitet seit vielen Jahren produktiv mit Linux-basierten Entwicklungsumgebungen unter Windows.
Der Fokus liegt auf performanten Setups mit WSL 2, Docker, PHP, Node.js und modernen Build-Tools in realen Projekten – nicht auf theoretischen Beispielkonfigurationen.

Die Artikel dieser Serie entstehen direkt aus dem täglichen Einsatz in Kunden- und Eigenprojekten und dokumentieren bewusst auch typische Fehler, Engpässe und bewährte Workarounds.

Webseite besuchen

Schreiben Sie einen Kommentar