Un site Web avec Laravel

Les étapes

  1. Capter les erreurs : les règles

    1. Voir la section validation du cheatsheet.
    2. Constater la panoplie de règles possibles.
    3. Ouvrir le model User.
    4. Ajouter une propriété statique et publique $regles qui est un array.
    5. Ajouter la règle "required" pour le champ "prenom" de la table, la règle "email" pour le champ "email" et une expression régulière pour le code postal.
      static public $regles = [
      'prenom' => 'required',
      'email' => 'email',
      'codepostal' => 'required|regex:/^[a-z][0-9][a-z][.-]?[0-9][a-z][0-9]$/i',
      ];
  2. Empêcher le traitement du formulaire

    1. Ouvrir le controller UserController et voir l'action store.
    2. Ajouter la validation du request :
      $request->validate(User::$regles);
      $donnees = $request->all()
    3. Tester avec des erreurs. MAGIE! Il fait automatiquement une redirection et remplit les champs.
    4. Tester sans les erreurs. Il exécute l'ajout.
    5. Faire de même pour la méthode update.
  3. La variable $errors

    1. Dans la view users.form, faire afficher la variable $errors. {{$errors}}.
    2. Tester avec des erreurs.
    3. Faire un message d'erreur global.
      @if($errors->any())
      <div style="color:red; font-weight:bold; font-size:larger;">
      Veuillez corriger les erreurs du formulaire
      </div>
      @endif
    4. Retester
  4. Chaque erreur

    1. Dans la view users.form, ajouter le code d'affichage d'erreur pour chaque champ.
      @error('prenom')
      <span style="color:red;">
      {{$errors->first('prenom')}}
      </span>
      @enderror
    2. Retester
    3. Compléter les règles
      static protected $regles = [
      'nom' => 'required',
      'prenom' => 'required',
      'name' => 'required|unique',
      'password' => 'required',
      'email' => 'required|email',
      'tel' => 'required|regex:/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/',
      'adresse' => 'required',
      'ville' => 'required',
      'province' => 'required',
      'codepostal' => 'required|regex:/^[a-z][0-9][a-z][.-]?[0-9][a-z][0-9]$/i',
      'citation' => '',
      ];
  5. Des messages en français

    1. Dans le fichier /config/app.php, changer la langue pour fr : 'locale' => 'fr',
    2. Dans Google, faire la recherche "Laravel language pack" et suivre les instructions.
      1. Dans un terminal, exécuter la commande composer require caouecs/laravel-lang:~6.0
      2. Copier ou déplacer le dossier /vendor/caouecs/laravel-lang/src/fr vers le dossier /resources/lang afin d'obtenir le dossier /resources/lang/fr