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!

Laravel - Forms

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
email 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