Was ist das Request-Objekt
Illuminate\Http\Request ist die Klasse, mit der Sie eingehende HTTP-Anfragen objektorientiert verarbeiten.
Sie greifen darüber auf Formulardaten, Query-String, Dateien, Header und alle weiteren Bestandteile eines Requests zu.
Request-Injection in Controllern
Wenn Sie in einer Controller-Methode Illuminate\Http\Request mit Type Hint deklarieren, injiziert der Service Container automatisch eine Instanz.
<? php
namespace App\Http\Controllers ;
use Illuminate\Http\ RedirectResponse ;
use Illuminate\Http\ Request ;
class UserController extends Controller
{
public function store ( Request $request ) : RedirectResponse
{
$name = $request -> input ( 'name' );
// Benutzer speichern...
return redirect ( '/users' );
}
}
Auch in Route-Closures können Sie den Type Hint verwenden.
use Illuminate\Http\ Request ;
Route :: get ( '/' , function ( Request $request ) {
// ...
});
Kombination mit Route-Parametern
Erwartet die Methode auch Routenparameter, listen Sie diese nach Request.
use App\Http\Controllers\ UserController ;
Route :: put ( '/user/{id}' , [ UserController :: class , 'update' ]);
public function update ( Request $request , string $id ) : RedirectResponse
{
// Zugriff auf Request-Daten via $request und auf den Routenparameter via $id
return redirect ( '/users' );
}
Request-Daten abrufen
Alle Eingaben abrufen
all gibt alle Eingabedaten als Array zurück.
Funktioniert für HTML-Formulare wie auch XHR-Requests.
$input = $request -> all ();
Einzelne Felder abrufen
input ruft unabhängig von der HTTP-Methode Werte aus dem gesamten Payload ab (inkl. Query-String).
$name = $request -> input ( 'name' );
Als zweites Argument geben Sie einen Default-Wert an.
$name = $request -> input ( 'name' , 'Sally' );
Auf Array-Eingaben greifen Sie mit Punkt-Notation zu.
$name = $request -> input ( 'products.0.name' );
$names = $request -> input ( 'products.*.name' );
Query-String abrufen
query liest ausschließlich den Query-String (nach ?).
$name = $request -> query ( 'name' );
$name = $request -> query ( 'name' , 'Helen' );
// Gesamten Query-String als Array
$query = $request -> query ();
input deckt Body und Query-String ab, query nur den Query-String.
Wenn Sie klar zwischen POST-Daten und URL-Parametern unterscheiden möchten, greifen Sie zu query.
Typisierter Abruf
Es gibt Methoden, die Eingaben direkt in einen Zieltyp umwandeln.
// Als String (Stringable-Instanz)
$name = $request -> string ( 'name' ) -> trim ();
// Als Integer
$perPage = $request -> integer ( 'per_page' );
// Als Boolean ("1", "true", "on", "yes" → true)
$archived = $request -> boolean ( 'archived' );
// Als Array
$versions = $request -> array ( 'versions' );
// Datum als Carbon-Instanz
$birthday = $request -> date ( 'birthday' );
Dynamische Eigenschaften
Sie können Felder auch direkt als Eigenschaft ansprechen.
Bei dynamischen Eigenschaften wird zuerst im Request-Payload und danach in den Routenparametern gesucht.
Teilmenge der Eingaben
Mit only und except erhalten Sie eine Teilmenge.
$input = $request -> only ([ 'username' , 'password' ]);
$input = $request -> except ([ 'credit_card' ]);
Existenz einer Eingabe prüfen
has prüft, ob ein Wert vorhanden ist.
if ( $request -> has ( 'name' )) {
// ...
}
// Alle Schlüssel müssen vorhanden sein
if ( $request -> has ([ 'name' , 'email' ])) {
// ...
}
Für einen Wert, der nicht leer ist, verwenden Sie filled.
if ( $request -> filled ( 'name' )) {
// ...
}
Kehrt die Prüfung um, verwenden Sie isNotFilled.
if ( $request -> isNotFilled ( 'name' )) {
// ...
}
Pfad und Methode prüfen
Pfad ermitteln und prüfen
// Pfad abrufen (z. B. "foo/bar")
$uri = $request -> path ();
// Musterabgleich (mit Wildcard *)
if ( $request -> is ( 'admin/*' )) {
// ...
}
// Abgleich anhand des Routennamens
if ( $request -> routeIs ( 'admin.*' )) {
// ...
}
URL abrufen
// URL ohne Query-String
$url = $request -> url ();
// URL mit Query-String
$urlWithQueryString = $request -> fullUrl ();
HTTP-Methode prüfen
Mit isMethod.
$method = $request -> method ();
if ( $request -> isMethod ( 'post' )) {
// Nur POST-Requests behandeln
}
Datei-Uploads
Hochgeladene Datei abrufen
file liefert die hochgeladene Datei als Illuminate\Http\UploadedFile.
$file = $request -> file ( 'photo' );
// Auch als dynamische Eigenschaft
$file = $request -> photo ;
Prüfen, ob eine Datei vorhanden ist, mit hasFile.
if ( $request -> hasFile ( 'photo' )) {
// ...
}
Datei speichern
store speichert die Datei automatisch mit generiertem Namen.
// In das Verzeichnis "images" der Default-Disk
$path = $request -> photo -> store ( 'images' );
// Auf S3
$path = $request -> photo -> store ( 'images' , 's3' );
Wollen Sie den Dateinamen selbst festlegen, nutzen Sie storeAs.
$path = $request -> photo -> storeAs ( 'images' , 'filename.jpg' );
Wenn Sie Datei-Uploads entgegennehmen, validieren Sie unbedingt Typ und Größe.
Verwenden Sie Validierung für eine sichere Verarbeitung.
Ein Beispiel, das Daten eines Registrierungsformulars entgegennimmt.
<? php
namespace App\Http\Controllers ;
use Illuminate\Http\ RedirectResponse ;
use Illuminate\Http\ Request ;
class RegisterController extends Controller
{
public function store ( Request $request ) : RedirectResponse
{
// Formulardaten abrufen
$name = $request -> input ( 'name' );
$email = $request -> input ( 'email' );
$password = $request -> input ( 'password' );
// Nur benötigte Felder
$data = $request -> only ([ 'name' , 'email' , 'password' ]);
// Benutzer erstellen...
return redirect ( '/dashboard' );
}
}
Die zugehörige Route:
use App\Http\Controllers\ RegisterController ;
Route :: post ( '/register' , [ RegisterController :: class , 'store' ]);
Nächste Schritte
Middleware Frischen Sie den Einsatz von Middleware zum Filtern von Requests auf.
Zuletzt geändert am 13. Juli 2026