Illuminate\Http\Request est la classe qui permet de manipuler de manière orientée objet les requêtes HTTP reçues par votre application.
Elle donne accès à toutes les informations d’une requête : données de formulaire, chaîne de requête, fichiers, en-têtes, etc.
Lorsque vous typez une méthode de contrôleur avec Illuminate\Http\Request, le conteneur de services Laravel injecte automatiquement l’instance de la requête.
<?phpnamespace 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'); // Sauvegarde de l'utilisateur... return redirect('/users'); }}
Vous pouvez faire de même dans une closure de route.
use Illuminate\Http\Request;Route::get('/', function (Request $request) { // ...});
Si votre méthode reçoit aussi des paramètres de route, placez ces derniers après Request.
use App\Http\Controllers\UserController;Route::put('/user/{id}', [UserController::class, 'update']);
public function update(Request $request, string $id): RedirectResponse{ // $request pour la requête, $id pour le paramètre de route return redirect('/users');}
La méthode query ne récupère la valeur que depuis la chaîne de requête (après ?).
$name = $request->query('name');$name = $request->query('name', 'Helen');// Récupère toute la chaîne de requête sous forme de tableau$query = $request->query();
input cible à la fois le corps de la requête et la chaîne de requête, tandis que query ne cible que la chaîne de requête.
Utilisez query si vous voulez distinguer les données POST du formulaire des paramètres d’URL.
Au-delà de input, il existe des méthodes pour récupérer les valeurs avec un type spécifique.
// Récupère en tant que chaîne (instance Stringable)$name = $request->string('name')->trim();// Récupère en tant qu'entier$perPage = $request->integer('per_page');// Récupère en tant que booléen ("1", "true", "on", "yes" → true)$archived = $request->boolean('archived');// Récupère en tant que tableau$versions = $request->array('versions');// Récupère en tant qu'instance Carbon$birthday = $request->date('birthday');
// Récupère le chemin (ex. : "foo/bar")$uri = $request->path();// Vérifie une correspondance avec un pattern (le joker * est autorisé)if ($request->is('admin/*')) { // ...}// Vérifie la correspondance avec une route nomméeif ($request->routeIs('admin.*')) { // ...}
La méthode store sauvegarde le fichier sur le stockage.
Le nom du fichier est généré automatiquement.
// Sauvegarde dans le répertoire "images" du disque par défaut$path = $request->photo->store('images');// Sauvegarde sur S3$path = $request->photo->store('images', 's3');