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

Intervention innovante en réalité augmentée, avec une visionneuse Apple à la polyclinique de Catane

Une opération d'ophtalmoplastie à l'aide de la visionneuse commerciale Apple Vision Pro a été réalisée à la polyclinique de Catane…

3 mai 2024

Les avantages des pages à colorier pour les enfants - un monde de magie pour tous les âges

Développer la motricité fine grâce au coloriage prépare les enfants à des compétences plus complexes comme l’écriture. Colorier…

2 mai 2024

L’avenir est là : comment le secteur du transport maritime révolutionne l’économie mondiale

Le secteur naval est une véritable puissance économique mondiale, qui a navigué vers un marché de 150 milliards...

1 mai 2024

Les éditeurs et OpenAI signent des accords pour réguler les flux d'informations traitées par l'intelligence artificielle

Lundi dernier, le Financial Times a annoncé un accord avec OpenAI. FT autorise son journalisme de classe mondiale…

30 avril 2024