Laravel - Formulare: Ein Anfängerleitfaden
Hallo da draußen, angehende Entwickler! Als Informatiklehrer mit jahrelanger Erfahrung freue ich mich, euch durch die aufregende Welt der Laravel-Formulare zu führen. Macht euch keine Sorgen, wenn ihr neu im Programmieren seid – wir beginnen mit den Grundlagen und arbeiten uns hoch. Am Ende dieses Tutorials werdet ihr Formulare wie ein Profi erstellen können!
Was sind Laravel-Formulare?
Bevor wir uns in den Code stürzen, lassen wir uns erstmal anschauen, was Laravel-Formulare sind. Stellt euch vor, ihr füllt ein Online-Bewerbungsformular aus – das ist ein Formular! In der Webentwicklung sind Formulare unser Mittel, um Informationen von Benutzern zu sammeln. Laravel, unser freundliches PHP-Framework, macht das Erstellen und Verwalten dieser Formulare zum Kinderspiel.
Warum Laravel für Formulare verwenden?
Ihr fragt euch vielleicht, "Warum Laravel?"Nun, lassen mich euch eine kleine Geschichte erzählen. Als ich ein junger Entwickler war (ja, zu der Zeit roamen Dinosaurier die Erde), war das Erstellen von Formularen ein mühsamer Prozess. Aber Laravel kam wie ein Superheld daher und machte unser Leben viel einfacher mit seinen leistungsstarken Werkzeugen und Sicherheitsfunktionen.
Erste Schritte
Zuerst einmal, stellt sicher, dass Laravel auf eurem System installiert ist. Wenn nicht, keine Sorge! Folgt einfach der offiziellen Laravel-Installationsanleitung, und ihr seid in null Komma nichts startklar.
Beispiel 1: Erstellung eines einfachen Kontaktformulars
Lassen wir mit einem einfachen Kontaktformular beginnen. Wir werden ein Formular erstellen, das nach einem Namen, einer E-Mail-Adresse und einer Nachricht fragt.
Schritt 1: Erstellen der Route
Öffnet eure web.php
Datei im routes
Verzeichnis und fügt diese Zeile hinzu:
Route::get('/contact', 'ContactController@showForm');
Diesweil Laravel mitteilen, dass es unser Kontaktformular anzeigen soll, wenn jemand die '/contact' URL besucht.
Schritt 2: Erstellen des Controllers
Führt diesen Befehl in eurem Terminal aus:
php artisan make:controller ContactController
Öffnet nun die neu erstellte ContactController.php
Datei und fügt diese Methode hinzu:
public function showForm()
{
return view('contact');
}
Diese Methode wird unsere Kontaktformularansicht zurückgeben.
Schritt 3: Erstellen der Ansicht
Erstellt eine neue Datei namens contact.blade.php
im resources/views
Verzeichnis und fügt folgenden Code hinzu:
<form action="/submit-contact" method="POST">
@csrf
<div>
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">E-Mail:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">Nachricht:</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit">Senden</button>
</form>
Lassen wir das mal auseinandernehmen:
-
@csrf
ist eine Laravel-Direktive, die ein verstecktes Token hinzufügt, um Cross-Site Request Forgery-Angriffe zu verhindern. Denkt daran als eine geheime Handshake zwischen eurem Formular und Laravel. - Wir haben Eingabefelder für Name, E-Mail und ein Textarea für die Nachricht erstellt.
- Das
required
Attribut stellt sicher, dass Benutzer alle Felder ausfüllen, bevor sie absenden.
Schritt 4: Behandlung der Formularübermittlung
Fügt eine neue Route in web.php
hinzu:
Route::post('/submit-contact', 'ContactController@submitForm');
Dann fügt diese Methode zu eurem ContactController
hinzu:
public function submitForm(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'message' => 'required',
]);
// Verarbeitet die Formulardaten (z.B. in Datenbank speichern, E-Mail senden)
return redirect('/contact')->with('success', 'Vielen Dank für Ihre Nachricht!');
}
Diese Methode validiert die Formulardaten und leitet zurück zur Kontaktseite mit einer Erfolgsmeldung weiter.
Beispiel 2: Erstellung eines Registrierungsformulars
Nun, da wir warmgelaufen sind, lassen uns ein komplexeres Registrierungsformular erstellen.
Schritt 1: Erstellen der Route
Fügt dies zu eurer web.php
hinzu:
Route::get('/register', 'RegisterController@showForm');
Route::post('/register', 'RegisterController@register');
Schritt 2: Erstellen des Controllers
Führt diesen Befehl in eurem Terminal aus:
php artisan make:controller RegisterController
Fügt diese Methoden zu eurem RegisterController
hinzu:
public function showForm()
{
return view('register');
}
public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'date_of_birth' => 'required|date',
'gender' => 'required|in:male,female,other',
]);
// Logik zum Erstellen des Benutzers hier
return redirect('/register')->with('success', 'Registrierung erfolgreich!');
}
Schritt 3: Erstellen der Ansicht
Erstellt eine Datei namens register.blade.php
in eurem Ansichtenordner:
<form action="/register" method="POST">
@csrf
<div>
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">E-Mail:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="password">Passwort:</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<label for="password_confirmation">Passwort bestätigen:</label>
<input type="password" id="password_confirmation" name="password_confirmation" required>
</div>
<div>
<label for="date_of_birth">Geburtsdatum:</label>
<input type="date" id="date_of_birth" name="date_of_birth" required>
</div>
<div>
<label>Geschlecht:</label>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">Männlich</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Weiblich</label>
<input type="radio" id="other" name="gender" value="other">
<label for="other">Divers</label>
</div>
<button type="submit">Registrieren</button>
</form>
Dies Formular enthält verschiedene Eingabetypen: Text, E-Mail, Passwort, Datum und Optionsfelder.
Methoden zur Formularvalidierung
Hier ist eine Tabelle der häufigsten Laravel-Validierungsmethoden:
Methode | Beschreibung |
---|---|
required | Das Feld darf nicht leer sein |
Muss eine gültige E-Mail-Adresse sein | |
max:value | Maximale Länge |
min:value | Minimale Länge |
unique:table | Muss eindeutig in der angegebenen Datenbanktabelle sein |
confirmed | Muss ein übereinstimmendes Feld haben (z.B. password_confirmation) |
date | Muss ein gültiges Datum sein |
in:foo,bar,... | Muss einen der aufgelisteten Werte haben |
Schlussfolgerung
Glückwunsch! Ihr habt gerade zwei Laravel-Formulare erstellt und gelernt, wie man sie behandelt. Denkt daran, Übung macht den Meister, also experimentiert weiter mit verschiedenen Formulartypen und Validierungsregeln.
Als wir uns hier beenden, möchte ich eine kurze Anekdote teilen. Ich hatte einmal einen Schüler, der von Formularen害怕得要死 – er dachte, sie wären diese komplexen, geheimnisvollen Dinge. Aber nach ein paar Lektionen erstellte er Formulare zum Spaß! Das ist die Schönheit von Laravel – es macht das Komplizierte zu etwas Angenehmem.
Weiter codieren, neugierig bleiben und keine Angst haben, Fragen zu stellen. Viel Spaß beim Formularbau!
Credits: Image by storyset