Si l'affichage d'un message d'erreur lorsqu'une validation échoue est essentiel, l'affichage d'un message qui indique que l'enregistrement a été réalisé avec succès l'est tout autant.
Il existe un paquet Laravel qui fournit un mécanisme pour permettre d'afficher un message de confirmation une seule fois. La prochaine fois qu'une vue contentant un tel message sera affichée, le message ne réapparaîtra pas.
Ce paquet s'appelle Easy flash notifications.
Pour installer Easy flash notifications :
composer require laracasts/flash
Ceci ajoutera la configuration suivante dans le fichier composer.json puis téléchargera les fichiers requis dans le dossier vendor.
"require": {
...,
""laracasts/flash": "^3.0""
},
'providers' => [
...
/*
* Application Service Providers...
*/
...,
Laracasts\Flash\FlashServiceProvider::class,
],
Votre paquet est maintenant prêt à être utilisé.
Dans vos contrôleurs, avant d'effectuer une redirection, vous pourrez ajouter un message flash comme suit :
use Laracasts\Flash\Flash;
...
/**
* Enregistre un nouveau produit.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*/
public function store(Request $request) : RedirectResponse
{
...
flash('Le produit a été enregistré avec succès !')->success();
return redirect()->route('produits.index');
}
Il est d'usage d'afficher les messages dans le haut de la page, idéalement sous le titre h1.
À cet effet, le paquet met à votre disposition une vue partielle. Vous devez ajouter le code suivant dans votre vue ou, pour que les messages puissent être affichées surs toutes les pages, dans votre gabarit de base :
@include('flash::message')
<div class="contenupage">
@yield('contenu')
</div>
Notez que ce paquet utilise les classes Bootstrap pour formater l'affichage.
Si vous utilisez également Bootstrap, n'oubliez pas de placer le @include() dans un <div class="container"> pour que le message s'affiche avec les marges requises.
Le code complet de la vue partielle est dans le fichier vendor\laracasts\flash\src\views\message.blade.php. Si vous désirez y apporter des modifications, copiez ce fichier dans votre dossier de vues partielles, modifiez-le selon vos besoins puis modifiez l'instruction @include() pour référer à votre vue partielle.
▼Publicité