Laravel - Forms: A Beginner's Guide
Salut là, futurs développeurs ! En tant qu'enseignant en informatique avec des années d'expérience, je suis ravi de vous guider à travers le monde passionnant des formulaires Laravel. Ne vous inquiétez pas si vous êtes nouveaux dans la programmation - nous allons commencer par les bases et progresser pas à pas. À la fin de ce tutoriel, vous serez capable de créer des formulaires comme un pro !
Qu'est-ce que les formulaires Laravel ?
Avant de plonger dans le code, comprenons ce qu'est un formulaire Laravel. Imaginez que vous remplissez une candidature en ligne - c'est un formulaire ! Dans le développement web, les formulaires sont notre moyen de collecter des informations des utilisateurs. Laravel, notre framework PHP bien-aimé, rend la création et la gestion de ces formulaires extrêmement faciles.
Pourquoi utiliser Laravel pour les formulaires ?
Vous vous demandez peut-être, "Pourquoi Laravel ?" Eh bien, laissez-moi vous raconter une petite histoire. Quand j'étais jeune développeur (oui, les dinosaures régnaient encore), créer des formulaires était un processus fastidieux. Mais Laravel est arrivé comme un super-héros, rendant nos vies beaucoup plus faciles avec ses puissants outils et fonctionnalités de sécurité.
Premiers pas
Premièrement, assurez-vous d'avoir Laravel installé sur votre système. Si ce n'est pas le cas, ne vous inquiétez pas ! Suivez simplement le guide d'installation officiel de Laravel, et vous serez prêt à partir en un rien de temps.
Exemple 1 : Créer un simple formulaire de contact
Commençons par un simple formulaire de contact. Nous allons créer un formulaire qui demande un nom, un email et un message.
Étape 1 : Créer la route
Ouvrez votre fichier web.php
dans le dossier routes
et ajoutez cette ligne :
Route::get('/contact', 'ContactController@showForm');
Cela indique à Laravel de montrer notre formulaire de contact lorsque quelqu'un visite l'URL '/contact'.
Étape 2 : Créer le contrôleur
Exécutez cette commande dans votre terminal :
php artisan make:controller ContactController
Maintenant, ouvrez le fichier ContactController.php
nouvellement créé et ajoutez cette méthode :
public function showForm()
{
return view('contact');
}
Cette méthode va retourner notre vue de formulaire de contact.
Étape 3 : Créer la vue
Créez un nouveau fichier appelé contact.blade.php
dans le dossier resources/views
et ajoutez ce code :
<form action="/submit-contact" method="POST">
@csrf
<div>
<label for="name">Nom :</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email :</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">Message :</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit">Envoyer</button>
</form>
Reprenons cela :
-
@csrf
est une directive Laravel qui ajoute un jeton caché pour éviter les attaques de falsification de requêtes intersites (CSRF). Pensez-y comme un secret partagé entre votre formulaire et Laravel. - Nous avons créé des champs d'entrée pour le nom, l'email et une zone de texte pour le message.
- L'attribut
required
garantit que les utilisateurs remplissent tous les champs avant de soumettre.
Étape 4 : Gérer la soumission du formulaire
Ajoutez une nouvelle route dans web.php
:
Route::post('/submit-contact', 'ContactController@submitForm');
Ensuite, ajoutez cette méthode à votre ContactController
:
public function submitForm(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email',
'message' => 'required',
]);
// Traiter les données du formulaire (par exemple, enregistrer dans la base de données, envoyer un email)
return redirect('/contact')->with('success', 'Merci pour votre message !');
}
Cette méthode valide les données du formulaire et redirige vers la page de contact avec un message de succès.
Exemple 2 : Créer un formulaire d'inscription
Maintenant que nous avons chaud, créons un formulaire d'inscription plus complexe.
Étape 1 : Créer la route
Ajoutez ceci à votre web.php
:
Route::get('/register', 'RegisterController@showForm');
Route::post('/register', 'RegisterController@register');
Étape 2 : Créer le contrôleur
Exécutez :
php artisan make:controller RegisterController
Ajoutez ces méthodes à RegisterController
:
public function showForm()
{
return view('register');
}
public function register(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
'date_of_birth' => 'required|date',
'gender' => 'required|in:male,female,other',
]);
// Logique de création d'utilisateur ici
return redirect('/register')->with('success', 'Inscription réussie !');
}
Étape 3 : Créer la vue
Créez register.blade.php
dans votre dossier views
:
<form action="/register" method="POST">
@csrf
<div>
<label for="name">Nom :</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">Email :</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password" required>
</div>
<div>
<label for="password_confirmation">Confirmer le mot de passe :</label>
<input type="password" id="password_confirmation" name="password_confirmation" required>
</div>
<div>
<label for="date_of_birth">Date de naissance :</label>
<input type="date" id="date_of_birth" name="date_of_birth" required>
</div>
<div>
<label>Sexe :</label>
<input type="radio" id="male" name="gender" value="male" required>
<label for="male">Homme</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Femme</label>
<input type="radio" id="other" name="gender" value="other">
<label for="other">Autre</label>
</div>
<button type="submit">S'inscrire</button>
</form>
Ce formulaire inclut différents types de champs : texte, email, mot de passe, date et boutons radio.
Méthodes de validation courantes
Voici un tableau des méthodes de validation courantes de Laravel :
Méthode | Description |
---|---|
required | Le champ ne doit pas être vide |
Doit être une adresse email valide | |
max:value | Longueur maximale |
min:value | Longueur minimale |
unique:table | Doit être unique dans la table spécifiée |
confirmed | Doit avoir un champ correspondant (par exemple, password_confirmation) |
date | Doit être une date valide |
in:foo,bar,... | Doit être l'un des valeurs énumérées |
Conclusion
Félicitations ! Vous venez de créer deux formulaires Laravel et avez appris à les gérer. Souvenez-vous, la pratique rend parfait, donc continuez à expérimenter avec différents types de formulaires et règles de validation.
En conclusion, permettez-moi de partager une petite anecdote. J'ai eu un étudiant qui avait peur des formulaires - il les pensait complexes et mystérieux. Mais après quelques leçons, il créait des formulaires pour le plaisir ! C'est la beauté de Laravel - il rend le complexe quelque chose de plaisant.
Continuez à coder, restez curieux, et n'ayez pas peur de poser des questions. Bonne construction de formulaires !
Credits: Image by storyset