Schritt 1: Eine neue Middleware erstellen
php artisan make:middleware CheckAge
Info
Dieser Befehl erstellt eine neue Datei CheckAge.php im Ordner app/Http/Middleware.
Schritt 2: Middleware bearbeiten
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class CheckAge
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
// Prüfe, ob der 'age'-Parameter in der Anfrage vorhanden und >= 18 ist
if ($request->input('age') < 18) {
// Wenn der Benutzer zu jung ist, leiten wir ihn zur 'home'-Seite um
return redirect('home')->with('error', 'Du bist zu jung für diesen Bereich!');
}
// Wenn der Benutzer mindestens 18 Jahre alt ist, wird die Anfrage fortgesetzt
return $next($request);
}
}
Schritt 3: Middleware registrieren
Info
Wir werden unsere Middleware CheckAge im Bereich $routeMiddleware registrieren:
protected $routeMiddleware = [
// Andere Middleware...
'age' => \App\Http\Middleware\CheckAge::class,
];
Schritt 4: Middleware auf eine Route anwenden
Route::get('/restricted', function () {
return 'Willkommen in der Erwachsenenwelt!';
})->middleware('age');
Schritt 5: Testen der Middleware
Tipp
Wenn du zu http://localhost:8000/restricted?age=15 gehst, wirst du zur /home-Route umgeleitet und erhältst die Nachricht „Du bist zu jung für diesen Bereich!“.
Schritt 6: Weitere Tipps und Tricks
n deiner Middleware kannst du dann den Parameter abfangen und verwenden:
Route::get('/restricted', function () {
return 'Willkommen in der Erwachsenenwelt!';
})->middleware('age:21');
public function handle(Request $request, Closure $next, $age)
{
if ($request->input('age') < $age) {
return redirect('home')->with('error', 'Du bist zu jung für diesen Bereich!');
}
return $next($request);
}
Globale Middleware vs. Routen-Middleware
Mehrere Middleware auf eine Route anwenden:
Route::get('/restricted', function () {
return 'Willkommen!';
})->middleware(['auth', 'age']);
Fehlermeldungen und Debugging
use Illuminate\Support\Facades\Log;
public function handle(Request $request, Closure $next)
{
Log::info('Request Age:', ['age' => $request->input('age')]);
// Weitere Middleware-Logik...
}
Kommentare 0
Noch keine Kommentare. Seien Sie der Erste!