Mise en place d’un système d’affichage de messages pour Laravel
Dans Laravel par défaut, seul l’affichage des erreurs est géré automatiquement, c’est ainsi qu’on peut utiliser dans les templates blade la variable $errors, cette dernière permet de lister l’ensemble des erreurs à afficher, on peut faire une boucle de ce type :
@if ($errors->any())
<ul class="errors text-aiop_red bg-aiop_lightred py-2 pl-2 mb-4">
@foreach ($errors->all() as $error)
<li>{{ __($error) }}</li>
@endforeach
</ul>
@endif
Cette gestion est parfaite pour les erreurs, mais, d’après mes recherches en tout cas, rien pour les messages d’information ou de confirmation par exemple, mais bien entendu il existe une parade assez simple à mettre en place, pour cela, nous allons utiliser la fonction Session::flash, cette dernière permet de passer des paramètres en session pour le traitement actuel, ces données sont non persistantes, elle sont passées puis supprimées, amplement suffisant pour faire ce que l’on souhaite.
On va donc créer une fonction pour ajouter un message à la liste et mettre cette liste dans la session :
public static function addConfirmation($message)
{
if (Session::has('aiop_confirmations')) {
$data = json_decode(Session::get('aiop_confirmations'), true);
} else {
$data = [];
}
$data[] = $message;
Session::flash('aiop_confirmations', json_encode($data));
}
On vérifie donc si des données sont présentes dans la session pour la clé voulue, si c’est le cas, on décode la chaine JSON, on ajoute le nouveau message à la liste, sinon on créé la liste et on l’ajoute, puis les données devant être sous forme de chaine, on créé une chaine JSON qu’on place dans la variable de session.
Ensuite pour l’affichage front, il suffit d’utiliser ces données dans notre template blade :
@if(Session::has('aiop_confirmations'))
@php
$confirmations = json_decode(Session::get('aiop_confirmations'));
@endphp
<ul class="confirmations text-aiop_green bg-aiop_lightgreen py-2 pl-2 mb-4">
@foreach ($confirmations as $confirmation)
<li>{{ $confirmation }}</li>
@endforeach
</ul>
@endif
Un traitement assez simple à mettre en place et qui permet donc d’afficher des informations importantes à destination des utilisateurs, quelques exemples :

Bien entendu on peut à loisir ajouter des icônes, modifier les couleurs ou d’autres paramètres dans le template, attention cependant, la limite d’un cookie est de 4 Ko.