Rediriger après un formulaire

Dans ce tutoriel, nous allons créer une nouvelle page /mon-compte et rediriger nos utilisateurs en cas de réussite de la connexion. En cas d'échec, nous allons apprendre à les rediriger vers le formulaire en affichant une erreur.

Créer une nouvelle page /mon-compte

Pour créer une nouvelle page, nous avons besoin d'ajouter une route, dans le fichier routes/web.php :

Route::view('/mon-compte', 'mon-compte');

Et de créer une nouvelle vue ressources/views/mon-compte.blade.php :

@extends('layout')

@section('contenu')
    <div class="section">
        <h1 class="title is-1">Mon compte</h1>

        <p>Vous êtes bien connecté.</p>
    </div>
@endsection

Redirection vers la nouvelle page

En cas de réussite, donc si $resultat est vrai, nous pouvons rediriger vers l'URL /mon-compte avec la fonction redirect() :

if ($resultat) {
    return redirect('/mon-compte');
}

Redirection en cas d'échec

En cas d'échec, nous pouvons soit rediriger vers /connexion avec redirect('/connexion') soit dire à Laravel de rediriger vers la page précédente avec return back().

La redirection vers le formulaire fonctionne mais l'adresse email a disparu, et il n'y a aucun message d'erreur.

Pour rediriger avec l'adresse mail, nous pouvons utiliser la fonction withInput().

return back()->withInput();

Pour rediriger avec un message d'erreur, nous pouvons utiliser la fonction withErrors() :

return back()->withInput()->withErrors([
    'email' => 'Vos identifiants sont incorrects.',
]);