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');

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.

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.

