Table of Contents
Collecter et Gérer les Données Utilisateurs avec Laravel
Laravel offre de nombreuses fonctionnalités pour collecter et gérer les données utilisateurs. Dans cet article, nous allons explorer comment utiliser la classe Request pour accéder aux données utilisateur à partir des requêtes HTTP.
Détection d’existence de données utilisateur
La méthode $request->has() permet de détecter si une pièce particulière de donnée utilisateur est disponible.
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
if ($request->has('utm')) {
// Faire du travail d'analyse
}
});
Accès aux données utilisateur
La méthode $request->input() permet de récupérer la valeur d’une seule field.
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
$userName = $request->input('name', 'Matt');
});
Notez que le deuxième paramètre est la valeur par défaut, donc si l’utilisateur n’a pas passé de valeur, vous pouvez avoir une valeur sensée (et non cassante).
Méthode et méthode isMethod
La méthode $request->method() retourne le verbe HTTP pour la requête, tandis que $request->isMethod() vérifie si il correspond au verbe spécifié.
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
$method = $request->method();
if ($request->isMethod('patch')) {
// Faire quelque chose si le méthode de requête est PATCH
}
});
Entrée array
Laravel fournit des helpers de commodité pour accéder aux données à partir d’entrées array. Utilisez la notation “dot” pour indiquer les étapes de plongeon dans la structure array, comme dans l’exemple suivant :
use Illuminate\Http\Request;
Route::post('employees', function (Request $request) {
$employeeZeroFirstName = $request->input('employees.0.firstName');
$allLastNames = $request->input('employees.*.lastName');
$employeeOne = $request->input('employees.1');
});
JSON et $request->json()
Si vous envoyez des données sous forme de JSON, vous pouvez utiliser $request->input() pour les récupérer.
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
$firstName = $request->input('firstName');
$spouseFirstname = $request->input('spouse.firstName');
});
Mais si vous préférez être plus explicite sur l’origine des données, vous pouvez utiliser $request->json().
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
$firstName = $request->json('firstName');
$spouseFirstname = $request->json('spouse.firstName');
});
Facades et helper global
Si vous utilisez des facades à l’intérieur de classes nommées (par exemple, les contrôleurs), vous devez ajouter le chemin complet du facade au bloc d’importation en haut de votre fichier (par exemple, use Illuminate\Support\Facades\Request;).
Les facades ont également des fonctions de helper global associées. Si ces fonctions sont appelées sans paramètre, elles exposent la même syntaxe que le facade (par exemple, request()->has() est la même chose que Request::has()). Elles ont également un comportement par défaut pour quand vous passez des paramètres (par exemple, request('firstName') est un raccourci pour request()->input('firstName')).
Route Data
Il peut sembler étrange de considérer le chemin d’accès comme étant une forme de données utilisateur, mais c’est tout aussi important que les autres.
Vous pouvez accéder aux segments du chemin d’accès en utilisant $request->segments() qui retourne un tableau de tous les segments ou $request->segment($segmentId) pour récupérer la valeur d’un segment spécifique.
use Illuminate\Http\Request;
Route::post('post-route', function (Request $request) {
$segments = $request->segments();
echo $segments[0]; // Affiche "users"
});
Notez que les segments sont retournés sur un index de 1, donc dans l’exemple précédent, $request->segment(1) retournerait “users”.
Chargement de fichiers
La classe Request fournit également accès aux fichiers chargés via la méthode $request->file() qui prend le nom d’entrée du fichier comme paramètre et renvoie une instance de Symfony\Component\HttpFoundation\File\UploadedFile.
use Illuminate\Http\Request;
Route::post('employees', function (Request $request) {
$profilePicture = $request->file('profile_picture');
});
En conclusion, Laravel fournit de nombreuses fonctionnalités pour collecter et gérer les données utilisateur. En utilisant la classe Request et ses méthodes associées, vous pouvez facilement accéder aux données utilisateur à partir des requêtes HTTP.
Pour aller plus loin, nous recommandons d’étudier le chapitre 10 de la documentation Laravel qui couvre en détail la gestion des données utilisateur.
In-Article Ad
Dev Mode
Mahmoud DEVO
Senior Full-Stack Developer
I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.
Enjoyed this article?
Subscribe to get more tech content delivered to your inbox.
Related Articles
Apprendre Laravel : Définition des Routes et Contrôleurs MVC
Voici une proposition de meta description : "Apprenez les bases de Laravel et découvrez comment créer des applications web robustes en suivant nos étapes clés.
Comment créer un contrôleur Laravel : comprendre la logique
Voici une proposition de meta description : "Apprenez à organiser la logique de vos routes avec des contrôleurs efficaces ! Découvrez comment structurer votre
Gestion des fichiers et telechargements dans Laravel : File, Download et StreamDownload
Guide complet pour gerer fichiers et telechargements dans Laravel. Utilisez File facade, response()->download() et streamDownload() efficacement.