Il percorso è un modo per creare un URL di richiesta per la tua applicazione. Questi URL non devono essere associati a file specifici su un sito Web e sono leggibili e ottimizzati per la SEO .
In Laravel, i percorsi vengono creati all’interno della cartella delle routes
. Vengono creati nel file web.php
per i siti web, e all’interno di api.php
per le API.
Queste route
vengono assegnate al gruppo middleware
di rete, evidenziando lo stato della sessione e la sicurezza CSRF
. Le rotte in route/api.php
sono senza stato e vengono assegnate al gruppo middleware API.
L’installazione predefinita di Laravel viene fornita con due percorsi, uno per il Web e l’altro per l’API. Ecco come appare il percorso per il web in web.php
:
Route::get('/', function () {
return view('welcome');
});
Tutti i percorsi di Laravel sono definiti nei file dei percorsi che si trovano all’interno della directory routes
. L’applicazione di gestione delle rotte, definita nel file App\Providers\RouteServiceProvider
, si occupa di mettere in fila automaticamente questi file. Il file route/web.php
definisce i percorsi per la tua interfaccia web.
È possibile definire un percorso per questa azione del controller nel modo seguente:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: il metodo Route::resource
produce tutti i percorsi di base richiesti per un’applicazione e viene gestito tramite la classe controller.
Quando una richiesta corrisponde all’URI di route specificato, viene richiamato il metodo show
definito nel controller App\Http\ControllersUserController
, passando i parametri di route al metodo.
Per le risorse, devi fare due cose sull’applicazione Laravel. In primo luogo, è necessario creare un percorso di risorse su Laravel che fornisca percorsi di inserimento, aggiornamento, visualizzazione ed eliminazione. In secondo luogo, creare un controller di risorse che fornisca un metodo per l’inserimento, l’aggiornamento, la visualizzazione e l’eliminazione.
L’installazione predefinita di Laravel viene fornita con due percorsi: uno per il Web e l’altro per l’API. Ecco come appare la route per web in web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware funge da ponte tra la richiesta e la reazione. Può essere una sorta di componente filtrante.
Laravel lavora con un middleware che ha il compito di confermare se l’applicazione del client è verificata o meno. Nel caso in cui il client sia confermato, allora il routing reindirizza alla home page o a una pagina di accesso.
route
Il codice precedente definisce un percorso per la home page. Ogni volta che questo percorso riceve una richiesta get
per /
, restituirà la view
welcome
.
Tutti i percorsi di Laravel sono definiti nei tuoi file di routing
, che si trovano all’interno della directory dei routes
. Di conseguenza, l'AppProvidersRouteServiceProvider
dell’applicazione mette in fila questi record. Il file route/web.php
contiene le rotte che sono gestite per la tua interfaccia web.
La struttura dei percorsi è molto semplice. Apri il file appropriato (`web.php
` o `api.php
` ) e inizia la riga di codice con `Route:: `
, seguito dalla richiesta che vuoi assegnare a quella rotta specifica e quindi specifica la funzione che sarà eseguiti a seguito della richiesta.
Laravel offre i seguenti metodi di percorso:
get
post
put
delete
patch
options
I percorsi sono definiti in Laravel all’interno della classe Route con HTTP, il percorso a cui rispondere e la chiusura, oppure il controller.
Vediamo come puoi creare i tuoi percorsi in Laravel.
Ora creerò un percorso di base che stamperà la tabellina del 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Nel codice sopra, ho creato un percorso di richiesta GET per l’URL /table
, che stamperà la tabellina del 2 sullo schermo.
Vediamo ora lo stesso codice, parametrizzando il numero per il quale si vuole la tabellina:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Nel codice il ‘number
‘ tra le parentesi graffe rappresenta il parametro, cioè il numero per il quale verrà calcolata la tabellina. Ogni volta che viene specificato un URL del tipo /table/n
, allora verrà stampata la tabellina del numero n
.
Esiste anche il modo per combinare entrambe le funzionalità in un unico percorso. Laravel offre la funzionalità dei parametri opzionali che ti consente di aggiungere parametri opzionali utilizzando il punto interrogativo ‘?’ dopo il parametro facoltativo e il valore predefinito. Vediamo l’esempio:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Nel codice sopra abbiamo creato il nostro parametro di route, rendendo il numero facoltativo, quindi se un utente instrada `/table
` allora genererà la tabella di 2 per impostazione predefinita e se un utente instrada a `/table/{number}
` quindi la tabellina del numero 'number'
verrà prodotto.
Nell’esempio precedente abbiamo creato un percorso per la generazione della tabellina, ma come possiamo assicurarci che il parametro del percorso sia effettivamente un numero, per evitare errori durante la generazione della tabellina ?
In Laravel, puoi definire un vincolo al parametro della rotta usando il metodo `where
` sull’istanza della rotta. Il metodo `where
` accetta il nome del parametro e una espressione regolare per quel parametro.
Vediamo ora un esempio di vincolo per il nostro parametro `{numero}
` per assicurarci che solo un numero venga passato alla funzione.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Nel codice sopra, abbiamo usato un’espressione regolare per il numero del percorso. Ora, se un utente prova a eseguire il routing a /table/no , verrà visualizzata un’eccezione NotFoundHttpException .
In Laravel, puoi definire un metodo Controller per un percorso. Un metodo controller esegue tutte le azioni definite ogni volta che un utente accede alla route.
Con il seguente codice stiamo assegnando il metodo controller 'functionname'
a una route:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Il codice inizia con `Route::`
e quindi definisce il metodo di richiesta per il percorso. Successivamente, definisci il tuo percorso e il controller insieme al metodo aggiungendo il simbolo @ prima del nome del metodo.
In Laravel, puoi definire un nome per il tuo percorso. Questo nome è spesso molto utile. Ad esempio, se desideri reindirizzare un utente da un percorso a un altro, non è necessario definire l’URL di reindirizzamento completo. Puoi semplicemente dare il suo nome. Puoi definire il nome della rotta usando il metodo `name
` nell’istanza della rotta.
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’);
Ora, potrei rigenerare l’URL per questo percorso, attraverso il seguente codice:
$url = route('table');
Allo stesso modo, per il reindirizzamento a questo URL, la sintassi corretta sarebbe:
return redirect()->route('table');
Route Groups
I Route Groups
, letteralmente gruppi di percorsi, è una funzionalità essenziale in Laravel, che consente di raggruppare i percorsi. I gruppi di percorsi sono utili quando si desidera applicare gli attributi a tutti i percorsi ragruppati. Se utilizzi i gruppi di percorsi, non devi applicare gli attributi individualmente a ciascun percorso; questo evita la duplicazione. Ti consente di condividere attributi come middleware
o namespaces
, senza definire questi attributi su ogni singolo percorso. Questi attributi condivisi possono essere passati in un formato array come primo parametro al metodo Route::group
.
Sintassi di un Route Group
Route::group([], callback);
dove [ ]: è un array passato al metodo group come primo parametro.
Esempio di Route Group
nel 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" ;
});
});
Nel codice, definiamo il metodo group(), che contiene i due parametri, cioè array
e closure
. All’interno della closure
, possiamo definire quanti route
vogliamo. Nel codice sopra, abbiamo definito tre route
.
Se via browser accediamo all’URL localhost/myproject/first
allora interviene il primo route
scrivendo nel browser first way route
.
Con l’URL localhost/myproject/second
allora interviene il secondo route
scrivendo nel browser second way route
.
Mentre con l’URL localhost/myproject/third
allora interviene il terzo route
scrivendo nel browser third way route
.
Route Groups
I prefissi di route
vengono utilizzati quando vogliamo fornire una struttura URL comune a più route
.
Possiamo specificare il prefisso per tutti i percorsi definiti all’interno del gruppo utilizzando l’opzione matrice prefisso nel Route Groups
.
Esempio di 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";
});
});
Il codice contiene tre percorsi a cui è possibile accedere dai seguenti URL:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Possiamo anche assegnare il middleware a tutti i percorsi all’interno di un gruppo. Il middleware deve essere definito prima di creare il gruppo. Per vedere come fare, leggi il nostro articolo Laravel middleware come funziona.
Esempio:
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";
});
});
Il metodo name
viene utilizzato per prefissare ogni nome di route
con una stringa specificata. Nel metodo name
, dobbiamo specificare la stringa con un carattere finale nel prefisso.
Esempio web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Excel fornisce un'ampia gamma di funzioni statistiche che eseguono calcoli dalla media, mediana e moda di base fino alla distribuzione…
Excel fornisce un'ampia gamma di funzioni statistiche che eseguono calcoli dalla media, mediana e moda di base fino alla distribuzione…
Le tabelle pivot costituiscono una tecnica di analisi dei fogli di calcolo. Consentono a un principiante assoluto con zero esperienza…
Quello che segue è il secondo ed ultimo articolo di questa newsletter dedicato al rapporto tra Privacy e Copyright da…
Progetto ACTEA, ENEA e Sapienza Università di Roma metteranno a punto le nuove batterie calcio-ione. Le nuove batteria calcio-ione in alternativa a…
Oltre 900 chirurghi ortopedici del piede e della caviglia, operatori sanitari avanzati, specializzandi ortopedici e studenti di medicina hanno partecipato…
Secondo l’ultimo report Protolabs sulla robotica destinata alla produzione, quasi un terzo (32%) degli intervistati ritiene che nei prossimi anni…
CNH è fortemente impegnata nello sviluppo della propria tecnologia per rendere l’agricoltura più semplice, efficiente e sostenibile per i suoi…
La mossa strategica faciliterà uno sviluppo più veloce per l'adozione dell'ecosistema privato 5G per tutti i dispositivi digitali NTT svela…
Neuralink, la startup neurotecnologica di proprietà di Elon Musk, ha recentemente annunciato che inizierà a reclutare pazienti per il suo…