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 !

Laravel - Forms

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
email 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