Introduction
La classe Illuminate\Http\Request de Laravel fournit une manière orientée objet d'interagir avec la requête HTTP actuelle gérée par votre application ainsi que de récupérer les entrées, cookies et fichiers soumis avec la requête.
Interagir avec la requête
Accéder à la requête
Pour obtenir une instance de la requête HTTP actuelle via l'injection de dépendances, vous devez type-hinter la classe Illuminate\Http\Request dans la closure de votre route ou la méthode de votre contrôleur :
use Illuminate\Http\Request;
Route::get('/', function (Request $request) {
$name = $request->input('name');
return redirect('/users');
});Injection de dépendances et paramètres de route
Si votre méthode de contrôleur attend également une entrée d'un paramètre de route, vous devez lister vos paramètres de route après vos autres dépendances :
use Illuminate\Http\Request;
public function update(Request $request, $id)
{
$name = $request->input('name');
// Mettre à jour l'utilisateur...
}Inspecter le chemin / la route de la requête
La méthode is vous permet de vérifier que le chemin de la requête entrante correspond à un pattern donné :
if ($request->is('admin/*')) {
// ...
}En utilisant la méthode routeIs, vous pouvez déterminer si la requête entrante correspond à une route nommée :
if ($request->routeIs('admin.*')) {
// ...
}Récupérer l'URL de la requête
Pour récupérer l'URL complète de la requête entrante, vous pouvez utiliser les méthodes url ou fullUrl :
$url = $request->url();
$urlWithQueryString = $request->fullUrl();Récupérer la méthode de la requête
La méthode method retournera le verbe HTTP de la requête :
$method = $request->method();
if ($request->isMethod('post')) {
// ...
}En-têtes de requête
Vous pouvez récupérer un en-tête de requête en utilisant la méthode header :
$value = $request->header('X-Header-Name');
$value = $request->header('X-Header-Name', 'default');Adresse IP de la requête
La méthode ip peut être utilisée pour récupérer l'adresse IP du client :
$ipAddress = $request->ip();Entrée
Récupérer l'entrée
Vous pouvez récupérer toutes les données d'entrée de la requête comme un tableau en utilisant la méthode all :
$input = $request->all();Récupérer une valeur d'entrée
En utilisant la méthode input, vous pouvez accéder à toute entrée utilisateur :
$name = $request->input('name');
$name = $request->input('name', 'Sally'); // Avec valeur par défautRécupérer l'entrée depuis la chaîne de requête
La méthode query récupère uniquement les valeurs de la chaîne de requête :
$name = $request->query('name');
$name = $request->query('name', 'Helen');Récupérer les valeurs d'entrée JSON
Lors de l'envoi de requêtes JSON, vous pouvez accéder aux données JSON via la méthode input :
$name = $request->input('user.name');Récupérer les valeurs d'entrée booléennes
La méthode boolean retourne true pour 1, "1", true, "true", "on" et "yes" :
$archived = $request->boolean('archived');Présence de l'entrée
Vous pouvez utiliser la méthode has pour déterminer si une valeur est présente :
if ($request->has('name')) {
// ...
}Ancienne entrée
Flasher l'entrée dans la session
La méthode flash flashera l'entrée actuelle dans la session :
$request->flash();
$request->flashOnly(['username', 'email']);
$request->flashExcept('password');Flasher l'entrée puis rediriger
return redirect('form')->withInput();
return redirect('form')->withInput($request->except('password'));Récupérer l'ancienne entrée
$username = $request->old('username');Dans un template Blade :
<input type="text" name="username" value="{{ old('username') }}">Cookies
Récupérer les cookies des requêtes
$value = $request->cookie('name');Fichiers
Récupérer les fichiers téléchargés
$file = $request->file('photo');
$file = $request->photo;Vous pouvez déterminer si un fichier est présent :
if ($request->hasFile('photo')) {
// ...
}Valider les téléchargements réussis
if ($request->file('photo')->isValid()) {
// ...
}Stocker les fichiers téléchargés
$path = $request->photo->store('images');
$path = $request->photo->store('images', 's3');
$path = $request->photo->storeAs('images', 'filename.jpeg');Référence
Pour plus d'informations, consultez la documentation Laravel par l'équipe Laravel.