Laravel - Routing

In Laravel, tutte le richieste vengono mappate con l'aiuto di percorsi. Il routing di base instrada la richiesta ai controller associati. Questo capitolo discute il routing in Laravel.

L'instradamento in Laravel include le seguenti categorie:

  • Routing di base
  • Parametri del percorso
  • Percorsi con nome

Routing di base

Tutti i percorsi dell'applicazione sono registrati all'interno di app/routes.phpfile. Questo file indica a Laravel gli URI a cui deve rispondere e il controller associato gli darà una chiamata particolare. Il percorso di esempio per la pagina di benvenuto può essere visualizzato come mostrato nella schermata riportata di seguito:

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

Esempio

Osserva il seguente esempio per saperne di più sull'instradamento:

app/Http/routes.php

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

resources/view/welcome.blade.php

<!DOCTYPE html>
<html>
   <head>
      <title>Laravel</title>
      <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" 
         type = "text/css">
      
      <style>
         html, body {
            height: 100%;
         }
         body {
            margin: 0;
            padding: 0;
            width: 100%;
            display: table;
            font-weight: 100;
            font-family: 'Lato';
         }
         .container {
            text-align: center;
            display: table-cell;
            vertical-align: middle;
         }
         .content {
            text-align: center;
            display: inline-block;
         }
         .title {
            font-size: 96px;
         }
      </style>
   </head>
   
   <body>
      <div class = "container">
         
         <div class = "content">
            <div class = "title">Laravel 5.1</div>
         </div>
			
      </div>
   </body>
</html>

Il meccanismo di instradamento è mostrato nell'immagine sotto riportata:

Vediamo ora di comprendere in dettaglio i passaggi coinvolti nel meccanismo di routing:

Step 1 - Inizialmente, dovremmo eseguire l'URL di root dell'applicazione.

Step 2 - Ora, l'URL eseguito dovrebbe corrispondere al metodo appropriato nel file route.phpfile. In questo caso, dovrebbe corrispondere al metodo e all'URL radice ("/"). Questo eseguirà la funzione correlata.

Step 3 - La funzione chiama il file modello resources/views/welcome.blade.php. Successivamente, la funzione chiama il file view() funzione con argomento ‘welcome’ senza utilizzare l'estensione blade.php.

Questo produrrà l'output HTML come mostrato nell'immagine qui sotto -

Parametri del percorso

A volte nell'applicazione web, potrebbe essere necessario acquisire i parametri passati con l'URL. Per questo, dovresti modificare il codice inroutes.php file.

Puoi acquisire i parametri in routes.php file in due modi come discusso qui:

Parametri obbligatori

Questi parametri sono quelli che dovrebbero essere acquisiti obbligatoriamente per il routing dell'applicazione web. Ad esempio, è importante acquisire il numero di identificazione dell'utente dall'URL. Ciò può essere possibile definendo i parametri del percorso come mostrato di seguito:

Route::get('ID/{id}',function($id) {
   echo 'ID: '.$id;
});

Parametri opzionali

A volte gli sviluppatori possono produrre parametri come opzionali ed è possibile con l'inclusione di ?dopo il nome del parametro nell'URL. È importante mantenere il valore predefinito indicato come nome del parametro. Guarda il seguente esempio che mostra come definire un parametro facoltativo:

Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return $name;});

L'esempio sopra controlla se il valore corrisponde a TutorialsPoint e di conseguenza instrada all'URL definito.

Percorsi con nome

Le rotte con nome consentono un modo conveniente di creare rotte. Il concatenamento delle rotte può essere specificato utilizzando il metodo del nome nella definizione del percorso. Il codice seguente mostra un esempio per la creazione di rotte denominate con controller:

Route::get('user/profile', '[email protected]')->name('profile');

Il controller utente chiamerà la funzione showProfile con parametro as profile. I parametri usanoname metodo sulla definizione del percorso.