Aller au contenu
Projet de développement SGBD

Routage

Routage avec Laravel et Inertia

Le routage dans une application utilisant Laravel et Inertia présente quelques spécificités importantes, notamment en ce qui concerne la gestion des redirections et l'utilisation de helpers pour la génération des URLs. Nous allons explorer ces aspects à travers des explications et des exemples concrets.

Définition des routes

Les routes dans une application Laravel avec Inertia sont définies dans le fichier web.php, de manière similaire à une application Laravel traditionnelle. Cependant, l'utilisation d'Inertia implique souvent des interactions spécifiques, surtout pour les requêtes autres que GET.

Exemple de définition de route

Voici un exemple de fichier routes/web.php dans une application Laravel utilisant Inertia :

use Inertia\Inertia;
use Illuminate\Support\Facades\Route;

Route::get('/users', function () {
    return Inertia::render('Users/Index');
});

Route::post('/users', 'UserController@store');

chatgpt image 10 mai 2026, 22_50_51 (1)

Gestion des redirections

Lors de la création ou de la modification de ressources via des requêtes non-GET, il est crucial de répondre par une redirection appropriée. Inertia s'attend à ce que ces actions soient suivies d'une réponse de redirection pour pouvoir mettre à jour la page de manière appropriée.

Exemple de redirection après une action

Supposons que vous ayez un contrôleur UserController avec une méthode store pour créer un nouvel utilisateur. Voici comment vous pourriez gérer la redirection :

public function store(Request $request)
{
    // Logique pour créer un utilisateur
    User::create($request->all());

    // Redirection vers la page d'index des utilisateurs
    return redirect()->route('users.index');
}

Dans cet exemple, après la création de l'utilisateur, le contrôleur redirige l'utilisateur vers la page d'index des utilisateurs. Inertia interceptera cette redirection et chargera la page d'index des utilisateurs sans recharger complètement le navigateur.

chatgpt image 10 mai 2026, 22_50_52 (2)

Utilisation du helper route() dans VueJS

Inertia permet également d'utiliser un helper route() dans les fichiers VueJS, similaire à celui utilisé dans les vues Blade de Laravel. Ce helper facilite la génération d'URLs pour les liens ou les actions dans les composants Vue.

Exemple d'utilisation du helper route()

Dans un composant Vue, vous pourriez utiliser le helper route() pour créer un lien vers la page d'index des utilisateurs :

<script setup>
import { Link } from '@inertiajs/vue3';
</script>

<template>
  <Link :href="route('users.index')">Voir tous les utilisateurs</Link>
</template>

Ce code crée un lien qui, lorsqu'il est cliqué, dirigera Inertia pour charger la page d'index des utilisateurs en utilisant la définition de route côté serveur, sans rechargement complet de la page.

chatgpt image 10 mai 2026, 22_50_52 (3)