Laravel

Messages Flash

Pour afficher ce genre de message flash, on utilise le système de sessions. Cela permet d’enregistrer temporairement en session le message qui doit apparaître sur une page.

Enregistrement du message en session au moment de la redirection

La façon la plus courante est de faire cela à la fin d'une méthode dans un contrôleur, quand on redirige vers une nouvelle page.

Exemple, dans l'exercice sur le blogue, quand on édite un article et qu'on valide, la méthode update() est appelée. À la fin de cette méthode, on rajoute la méthode →with('variabledesession', 'message')

public function update(Post $post, Request $request)
{
...
    return redirect('/posts')->with('status', "L'article a bien été modifié");
}

Cela enregistre le message dans une variable de session qui pourra être lu quand la nouvelle page sera chargée.

Lecture du message

Pour lire les variables de session dans blade, on utilise

{{ session('variable_de_session') }}

Voici le code pour afficher les messages flash sur toutes les pages. Il suffit de mettre ce code dans le fichier de layouts.

@if (session('status'))
    <div class="alert alert-success">
        {{ session('status') }}
    </div>
@endif

Enregistrement du message en session

Pour enregistrer un message en session n'importe où dans le code

$request->session()->flash('status', "L'article a bien été modifié");