Articles

Laravel : introduction au routage laravel

Le routage dans Laravel permet aux utilisateurs d'acheminer toutes les requêtes d'application vers le contrôleur approprié. La plupart des itinéraires principaux dans Laravel reconnaissent et acceptent un identifiant d'actif uniforme ainsi qu'une fermeture, offrant un moyen de routage simple et expressif.

Qu'est-ce qu'un itinéraire (route) ?

Le chemin est un moyen de créer une URL de demande pour votre application. Ces URL n'ont pas besoin d'être associées à des fichiers spécifiques sur un site Web et sont lisibles par l'homme et conviviales pour le référencement.

Dans Laravel, les chemins sont créés dans le dossier le routes. Ils sont créés dans le fichier web.php pour les sites Web, et dans api.php pour les API.

Ces route sont affectés au groupe middleware réseau, mettant en évidence l'état de la session et la sécurité CSRF. Les parcours en route/api.php ils sont sans état et sont affectés au groupe d'intergiciels d'API.
La pré-installationdefiLaravel nita est livré avec deux chemins, un pour le Web et un pour l'API. Voici à quoi ressemble le chemin d'accès au Web dans web.php:

Route::get('/', function () {
   return view('welcome');
});

Qu'est-ce qu'un itinéraire à Laravel ?

Tous les chemins de Laravel sont definiti dans les fichiers de chemin situés dans le répertoire routes. L'application de gestion des tournées, defifini dans le dossier App\Providers\RouteServiceProvider, se charge d'aligner automatiquement ces fichiers. Le fichier route/web.php definie les chemins de votre interface Web.

Vous pouvez defiTerminez un chemin pour cette action de contrôleur comme suit :

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: la méthode Route::resource produit tous les chemins de base requis pour une application et est géré via la classe contrôleur.

Lorsqu'une requête correspond à l'URI de route spécifié, la méthode est invoquée show defiterminé dans le contrôleur App\Http\ControllersUserController, en transmettant les paramètres de route à la méthode.

Pour les ressources, vous devez faire deux choses sur l'application Laravel. Tout d'abord, vous devez créer un chemin de ressource sur Laravel qui fournit des chemins d'insertion, de mise à jour, d'affichage et de suppression. Deuxièmement, créez un contrôleur de ressources qui fournit une méthode d'insertion, de mise à jour, d'affichage et de suppression.

La pré-installationdefiLaravel nita est livré avec deux chemins : un pour le Web et un pour l'API. Voici à quoi ressemble la route vers le Web dans web.php :

Route::get(‘/’, function () {

return view(‘welcome’);

});

Intergiciel Laravel agit comme un pont entre la demande et la réaction. Il peut s'agir d'une sorte de composant de filtre.

Laravel travailler avec un middleware qui a pour tâche de confirmer si l'application cliente est vérifiée ou non. Dans le cas où le client est confirmé, alors le routage redirige vers la page d'accueil ou une page de connexion.

Les méthodes pour le route

Le code précédent defitermine un chemin vers la page d'accueil. Chaque fois que ce chemin reçoit une demande get /, renverra le view welcome

Tous les chemins de Laravel sont definiti dans votre routing, qui se trouvent dans le répertoire dei routes. Par conséquent, l'AppProvidersRouteServiceProvider de l'application aligne ces enregistrements. Le fichier route/web.php contient les routes gérées pour votre interface Web.

La structure du chemin est très simple. Ouvrez le fichier approprié (`web.phpo `api.php) et commencez la ligne de code avec `Route:: `, suivi de la requête que vous souhaitez affecter à cette route spécifique, puis spécifiez la fonction qui sera exécutée suite à la requête.

Laravel propose les méthodes de chemin suivantes :

  • get
  • post
  • put
  • delete
  • patch
  • options

Les chemins sont definié dans Laravel dans la classe Route avec HTTP, la route à laquelle répondre et la fermeture, ou le contrôleur.

Comment créer des chemins dans Laravel

Voyons comment vous pouvez créer vos propres chemins dans Laravel.

Un chemin GET de base

Maintenant, je vais créer un chemin de base qui imprimera la table de multiplication de 2.

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

Dans le code ci-dessus, j'ai créé un chemin de requête GET pour l'URL /table, qui imprimera la table de multiplication de 2 à l'écran.

Voyons maintenant le même code, en paramétrant le nombre dont on veut la table de multiplication :

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Dans le code le 'number' entre accolades représente le paramètre, c'est-à-dire le nombre pour lequel la table de multiplication sera calculée. Chaque fois qu'une URL du type est spécifiée /table/n, alors la table des nombres sera imprimée n.

Il existe également un moyen de combiner les deux fonctionnalités dans un seul chemin. Laravel propose la fonction de paramètres optionnels qui vous permet d'ajouter des paramètres optionnels à l'aide du point d'interrogation '?' après le paramètre optionnel et la valeur predefinuit. Voyons l'exemple :

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

Dans le code ci-dessus, nous avons créé notre paramètre route, rendant le nombre facultatif, donc si un utilisateur route `/table` alors il générera la table de 2 par défautdefinite et si un utilisateur route vers `/table/{number}Puis la table des nombres 'number' seront produits.

Expressions régulières comme contraintes pour les paramètres de route

Dans l'exemple précédent, nous avons créé un chemin pour générer la table de multiplication, mais comment s'assurer que le paramètre du chemin est bien un nombre, pour éviter les erreurs lors de la génération de la table de multiplication ?

Dans Laravel, vous pouvez defiterminer une contrainte sur le paramètre route en utilisant la méthode `where` sur l'instance de route. Le `where` prend le nom du paramètre et une expression régulière pour ce paramètre.

Bulletin d'innovation
Ne manquez pas les nouvelles les plus importantes sur l'innovation. Inscrivez-vous pour les recevoir par email.

Voyons maintenant un exemple de contrainte pour notre paramètre `{numero}` pour s'assurer que seul un nombre est passé à la fonction.

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

Dans le code ci-dessus, nous avons utilisé une expression régulière pour le numéro de chemin. Maintenant, si un utilisateur essaie d'acheminer vers /table/non sera affiché une exception NotFoundHttpException.

Routage Laravel avec fonction de contrôle

Dans Laravel, vous pouvez defiTerminez une méthode Controller pour un chemin. Une méthode de contrôleur effectue toutes les actions defifini chaque fois qu'un utilisateur accède à la route.
Avec le code suivant, nous attribuons la méthode du contrôleur 'functionname' à un itinéraire :

Route:: get ( '/home' , 'YourController@functionname' ) ;

Le code commence par `Route::` puis defitermine la méthode de requête pour le chemin. Ensuite, defiTerminez votre chemin et votre contrôleur avec la méthode en ajoutant le symbole @ avant le nom de la méthode.

Donnez un nom au chemin

Dans Laravel, vous pouvez definissez un nom pour votre chemin. Ce nom est souvent très utile. Par exemple, si vous souhaitez rediriger un utilisateur d'un emplacement à un autre, vous n'avez pas à defiTerminez l'URL de redirection complète. Vous pouvez simplement donner son nom. Tu peux defiterminer le nom de la route en utilisant la méthode `name` dans l'instance de route.

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

Maintenant, je pourrais régénérer l'URL de ce chemin, via le code suivant :

$url = route('table');

De même, pour rediriger vers cette URL, la syntaxe correcte serait :

return redirect()->route('table');

Route Groups

I Route Groups, littéralement groupes de chemins, est une fonctionnalité essentielle de Laravel, qui vous permet de regrouper des chemins. Les groupes de chemins sont utiles lorsque vous souhaitez appliquer des attributs à tous les chemins groupés. Si vous utilisez des groupes de chemins, vous n'avez pas besoin d'appliquer les attributs individuellement à chaque chemin ; cela évite les doublons. Il vous permet de partager des attributs comme middleware o namespacessans defiterminez ces attributs sur chaque chemin individuel. Ces attributs partagés peuvent être passés dans un format de tableau en tant que premier paramètre de la méthode Route::group.

Syntaxe d'un groupe de routes

Route::group([], callback);  

[ ] : est un tableau passé à la méthode group comme premier paramètre.

Exemple de Route Group Nous avons mis en place un contrôle de gestion innovatif et une stratégie d'achat centralisée, basée sur l'utilisation d’un software sur une plate-forme online,obtenant en moins de deux mois de baisser le food cost de XNUMX% à XNUMX% pour s’établir en moins d'un an, à XNUMX% sur le prix de vente moyen des repas. web.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

Dans le code, defitrouvons la méthode grouper(), qui contient les deux paramètres, c'est-à-dire array e closure. À l'intérieur de closure, Nous pouvons defiterminer combien route nous voulons. Dans le code ci-dessus, nous avons defifini trois route.

Si via le navigateur, nous accédons à l'URL localhost/myproject/first puis le premier intervient route taper dans le navigateur first way route.

Avec l'url localhost/myproject/second vient ensuite la seconde route taper dans le navigateur second way route.

Alors qu'avec l'URL localhost/myproject/third vient ensuite le troisième route taper dans le navigateur third way route.

Préfixes de Route Groups

Les préfixes de route ils sont utilisés lorsque nous voulons fournir une structure d'URL commune à plusieurs route.

Nous pouvons spécifier le préfixe pour tous les chemins definites au sein du groupe à l'aide de l'option de tableau de préfixes dans Route Groups.

Exemple de web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

Le code contient trois chemins accessibles à partir des URL suivantes :

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Nous pouvons également attribuer un middleware à toutes les routes d'un groupe. Le middleware doit être defiterminé avant de créer le groupe. Pour savoir comment procéder, lisez notre article Intergiciel Laravel comment ça marche.

exemple:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

Préfixes de nom de chemin

La méthode name est utilisé pour préfixer chaque nom de route avec une chaîne spécifiée. Dans la méthode name, nous devons spécifier la chaîne avec un caractère de fin dans le préfixe.

Exemple web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

Bulletin d'innovation
Ne manquez pas les nouvelles les plus importantes sur l'innovation. Inscrivez-vous pour les recevoir par email.

Articles récents

Analyse trimestrielle de Cisco Talos : les e-mails d'entreprise ciblés par les criminels L'industrie manufacturière, l'éducation et la santé sont les secteurs les plus touchés

La compromission des e-mails d'entreprise a plus que doublé au cours des trois premiers mois de 2024 par rapport au dernier trimestre de…

14 mai 2024

Principe de ségrégation d'interface (ISP), quatrième principe SOLID

Le principe de ségrégation des interfaces est l'un des cinq principes SOLID de la conception orientée objet. Une classe devrait avoir…

14 mai 2024

Comment organiser au mieux les données et les formules dans Excel, pour une analyse bien faite

Microsoft Excel est l'outil de référence en matière d'analyse de données, car il propose de nombreuses fonctionnalités pour organiser des ensembles de données,…

14 mai 2024

Conclusion positive pour deux projets importants de Walliance Equity Crowdfunding : Jesolo Wave Island et Milano Via Ravenna

Walliance, SIM et plateforme parmi les leaders en Europe dans le domaine du Crowdfunding Immobilier depuis 2017, annonce la finalisation…

13 mai 2024

Qu'est-ce que le filament et comment utiliser le filament Laravel

Filament est un framework de développement Laravel « accéléré », fournissant plusieurs composants full-stack. Il est conçu pour simplifier le processus de…

13 mai 2024

Sous le contrôle des Intelligences Artificielles

«Je dois revenir pour achever mon évolution : je vais me projeter à l'intérieur de l'ordinateur et devenir une pure énergie. Une fois installé…

10 mai 2024

La nouvelle intelligence artificielle de Google peut modéliser l'ADN, l'ARN et « toutes les molécules de la vie »

Google DeepMind présente une version améliorée de son modèle d'intelligence artificielle. Le nouveau modèle amélioré offre non seulement…

9 mai 2024

Explorer l'architecture modulaire de Laravel

Laravel, célèbre pour sa syntaxe élégante et ses fonctionnalités puissantes, constitue également une base solide pour l'architecture modulaire. Là…

9 mai 2024