Laravel - Routing: Ein Anfängerguide
Hallo da draußen, angehende Laravel-Entwickler! Heute machen wir uns auf eine aufregende Reise durch die Welt der Laravel-Routen. Als dein freundlicher Nachbar-Computerlehrer werde ich dich durch dieses grundlegende Konzept führen und sicherstellen, dass du jeden Schritt verstehst. Also, hole dir einen Kaffee (oder Tee, wenn das dein Ding ist) und tauchen wir ein!
Was ist Routing?
Bevor wir loslegen, lassen wir uns darstellen, was Routing eigentlich ist. Stell dir vor, du bist in einer großen Bibliothek (das Internet) und möchtest ein bestimmtes Buch (eine Webseite) finden. Die Bibliothekarin (der Router) hilft dir, das genaue Buch zu finden, das du suchst. In der Webentwicklung ist das Routing wie diese Bibliothekarin, die Webanfragen zu den richtigen Teilen deiner Anwendung weiterleitet.
Grundlegendes Routing
Lassen wir mit den Grundlagen beginnen. In Laravel wird das Routing im routes/web.php
-Datei behandelt. Hier sagen wir unserer Anwendung, wie sie auf verschiedene URL-Anfragen reagieren soll.
Einfache Route
Hier ist die einfachste Form einer Route:
Route::get('/', function () {
return 'Hallo, Welt!';
});
Lassen wir das auseinandernehmen:
-
Route::get()
sagt Laravel, dass es auf eine GET-Anfrage reagieren soll. - Der erste Parameter
'/'
ist der URL-Pfad (in diesem Fall die Startseite). - Der zweite Parameter ist eine Funktion, die zurückgegeben wird, was an den Browser gesendet werden soll.
Wenn du die Startseite deiner Webseite besuchst, siehst du "Hallo, Welt!" angezeigt.
Route zu einer Ansicht
Oftentimes möchtest du nicht nur Text zurückgeben, sondern eine ganze HTML-Seite. Laravel macht das einfach:
Route::get('/welcome', function () {
return view('welcome');
});
Diese Route gibt die welcome
-Ansicht zurück, wenn jemand /welcome
besucht. Ansichten sind HTML-Vorlagen, die im resources/views
-Verzeichnis gespeichert sind.
Route mit Controller
Wenn deine Anwendung wächst, möchtest du möglicherweise Controller verwenden, um deinen Code besser zu organisieren:
Route::get('/users', 'UserController@index');
Diese Route sagt Laravel, dass es die index
-Methode auf dem UserController
aufrufen soll, wenn jemand /users
besucht.
Routenparameter
Nun, machen wir Dinge interessanter. Was ist, wenn wir dynamische Segmente in unseren URLs behandeln möchten?
Grundlegende Parameter
Route::get('/user/{id}', function ($id) {
return 'User '.$id;
});
Diese Route wird URLs wie /user/1
, /user/2
, etc. entsprechen. Das {id}
in der URL wird zu einer Variable, die an die Funktion übergeben wird.
Optional Parameter
Manchmal kann ein Parameter optional sein. Wir können das auch behandeln:
Route::get('/user/{name?}', function ($name = 'John') {
return 'Hallo, '.$name;
});
Diese Route funktioniert sowohl für /user
als auch für /user/Jane
. Wenn kein Name angegeben wird, wird standardmäßig 'John' verwendet.
Parameter constraints
Wir können auch Constraints zu unseren Parametern hinzufügen, indem wir reguläre Ausdrücke verwenden:
Route::get('/user/{id}', function ($id) {
return 'User '.$id;
})->where('id', '[0-9]+');
Diese Route wird nur dann zutreffen, wenn die id
aus einer oder mehreren Ziffern besteht.
Benannte Routen
Benannte Routen erlauben es dir, Routen durch einen Namen而不是它们的URL zu referenzieren. Dies ist besonders nützlich, wenn du URLs oder Umleitungen in deiner Anwendung generieren musst.
Definition einer benannten Route
Route::get('/user/profile', function () {
//
})->name('profile');
Verwendung einer benannten Route
Sobald eine Route benannt ist, kannst du URLs oder Umleitungen für die Route wie folgt generieren:
// Generierung einer URL...
$url = route('profile');
// Generierung einer Umleitung...
return redirect()->route('profile');
Dies ist äußerst hilfreich, da du die URL der Profilseite nur an einer Stelle ändern musst (die Routendefinition), und alle Verweise auf die benannte Route verwenden automatisch die neue URL.
Routengruppen
Wenn deine Anwendung wächst, könntest du feststellen, dass du das gleiche Middleware oder Prefix auf eine Gruppe von Routen anwenden möchtest. Laravel ermöglicht es dir, diese Routen zusammenzufassen:
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', function () {
// Erfordert Authentifizierung...
});
Route::get('/account', function () {
// Erfordert Authentifizierung...
});
});
Dies applies das auth
-Middleware auf beide /dashboard
und /account
Routen.
Routenmethoden
Laravel unterstützt Routing für alle standard HTTP-Verben. Hier ist eine schnelle Referenztabelle:
HTTP-Verb | Routenmethode |
---|---|
GET | Route::get() |
POST | Route::post() |
PUT | Route::put() |
PATCH | Route::patch() |
DELETE | Route::delete() |
OPTIONS | Route::options() |
Du kannst sogar mehrere HTTP-Verben mit einer einzigen Route beantworten:
Route::match(['get', 'post'], '/', function () {
//
});
Route::any('/', function () {
//
});
Und daar hast du es! Du hast gerade deine ersten Schritte in die Welt des Laravel-Routings unternommen. Denke daran, Übung macht den Meister, also habe keine Angst, verschiedene Routen auszuprobieren und zu sehen, was passiert.
Bevor ich gehe, hier ist ein kleiner Routenwitz für dich: Warum ist der Entwickler pleite gegangen? Weil er seinen entire Cache aufgebraucht hat! ?
Frohes Coden und möge deine Routen dich immer dahin führen, wo du hinwillst!
Credits: Image by storyset