
Etape 2 : Créer la méthode correspondante dans un contrôleur
Apprenez à créer un contrôleur et sa méthode correspondante dans Laravel, étape clé après la définition d'une route. Générez le contrôleur avec Artisan et écrivez la logique pour retourner une vue.
Le rôle du contrôleur et la génération avec Artisan
Après avoir défini une route dans routes/web.php qui pointe vers une méthode de contrôleur (par exemple, la méthode afficherMaPremierePage du PageController), l'étape suivante est de créer ce contrôleur et d'y implémenter la méthode spécifiée. Les contrôleurs dans Laravel sont des classes PHP chargées d'orchestrer la logique de traitement d'une requête et de préparer une réponse.
Laravel fournit un outil en ligne de commande très pratique, Artisan, qui simplifie la création de nombreuses classes, y compris les contrôleurs. Pour générer notre PageController, ouvrez votre terminal, naviguez jusqu'à la racine de votre projet Laravel, et exécutez la commande suivante :
php artisan make:controller PageControllerCette commande va créer un nouveau fichier nommé PageController.php dans le répertoire app/Http/Controllers/. Si vous souhaitez organiser vos contrôleurs dans des sous-dossiers, vous pouvez le spécifier dans la commande. Par exemple, pour créer un contrôleur dans app/Http/Controllers/Frontend/, vous utiliseriez :
php artisan make:controller Frontend/PageControllerDans ce cas, n'oubliez pas d'ajuster l'instruction use dans votre fichier de routes en conséquence (par exemple, use App\Http\Controllers\Frontend\PageController;).
Structure de base d'un contrôleur et ajout de la méthode
Ouvrez le fichier PageController.php nouvellement créé (situé dans app/Http/Controllers/ si vous avez utilisé la première commande). Il contiendra une structure de base comme celle-ci :
Nous devons maintenant y ajouter notre méthode afficherMaPremierePage. Cette méthode sera responsable de la logique à exécuter lorsque l'URL /mapremierepage sera appelée. Pour une page basique, cette logique consistera principalement à retourner une vue Blade, éventuellement en lui passant quelques données.
Ajoutons la méthode :
$pageTitle,
'message' => $welcomeMessage
]);
}
}
Dans cette méthode :
public function afficherMaPremierePage(): C'est la déclaration de notre méthode. Elle doit être publique pour être accessible par le routeur.$pageTitle = ...et$welcomeMessage = ...: Nous préparons quelques données que nous souhaitons afficher dynamiquement dans notre vue.return view('pages.mapremierepage', [...]);: C'est l'instruction clé. La fonction helperview()de Laravel est utilisée pour charger et rendre une vue Blade.- Le premier argument,
'pages.mapremierepage', indique à Laravel de chercher un fichier nommémapremierepage.blade.phpdans le sous-dossierpagesdu répertoireresources/views/. La notation par points (.) est utilisée pour naviguer dans les sous-dossiers deresources/views/. - Le second argument est un tableau associatif. Les clés de ce tableau (
'title','message') deviendront les noms des variables accessibles directement dans la vue Blade ($title,$message). Les valeurs associées ($pageTitle,$welcomeMessage) sont les données que nous leur transmettons.
- Le premier argument,
Comprendre l'injection de dépendances (Request)
Vous remarquerez que la commande Artisan make:controller inclut par défaut use Illuminate\Http\Request; et que les méthodes d'action générées par Artisan (par exemple, pour un contrôleur de ressources) peuvent avoir un argument Request $request. Bien que nous n'utilisions pas activement l'objet Request dans notre exemple simple, il est bon de savoir qu'il est disponible.
Si notre méthode de contrôleur avait besoin d'accéder à des informations de la requête HTTP (comme des données de formulaire, des paramètres d'URL, des en-têtes, etc.), nous pourrions l'injecter en tant que dépendance :
public function uneAutreMethode(Request $request)
{
// Accéder à une entrée spécifique d'un formulaire POST
// $nom = $request->input('nom');
// ... autre logique ...
return view('une.autre.vue');
}
Laravel gère automatiquement l'injection de cet objet Request dans votre méthode si vous le typez. Pour notre page basique actuelle, ce n'est pas nécessaire, mais c'est un concept fondamental pour des interactions plus complexes.
Prochaine étape : la vue Blade
Avec le contrôleur et sa méthode en place, Laravel sait maintenant quelle logique exécuter lorsque la route /mapremierepage est appelée. La méthode afficherMaPremierePage est prête à retourner la vue pages.mapremierepage en lui passant des données.
Cependant, cette vue n'existe pas encore. Si vous tentiez d'accéder à l'URL maintenant, Laravel lèverait une erreur indiquant que la vue est introuvable (View [pages.mapremierepage] not found.). La prochaine étape logique est donc de créer ce fichier de vue Blade, qui sera responsable de la présentation HTML du contenu.
La création de cette méthode dans le contrôleur est une étape centrale. Elle fait le pont entre la requête (identifiée par la route) et la réponse (matérialisée par la vue), en encapsulant la logique nécessaire pour préparer les informations à afficher.