El camí és una manera de crear un URL de sol·licitud per a la vostra aplicació. Aquests URL no han d'estar associats a fitxers específics d'un lloc web i són llegibles pels humans i són compatibles amb el SEO.
A Laravel, els camins es creen dins de la carpeta del fitxer routes
. Es creen al fitxer web.php
per a llocs web i dins api.php
per a les API.
aquests route
estan assignats al grup middleware
xarxa, destacant l'estat de la sessió i la seguretat CSRF
. Les rutes a route/api.php
són sense estat i estan assignats al grup de programari intermedi de l'API.
La preinstal·laciódefiLaravel nita inclou dos camins, un per a la web i un altre per a l'API. Així és el camí per a la web web.php
:
Route::get('/', function () {
return view('welcome');
});
Tots els camins de Laravel ho són definiti als fitxers de ruta situats dins del directori routes
. L'aplicació de gestió de rutes, defiacabat a l'expedient App\Providers\RouteServiceProvider
, s'encarrega d'alinear automàticament aquests fitxers. L'arxiu route/web.php
defiacaba els camins de la vostra interfície web.
És possible defiacabeu un camí per a aquesta acció del controlador de la manera següent:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: el mètode Route::resource
produeix totes les rutes bàsiques necessàries per a una aplicació i es gestiona mitjançant la classe de controlador.
Quan una sol·licitud coincideix amb l'URI de ruta especificat, s'invoca el mètode show
defiacabat al controlador App\Http\ControllersUserController
, passant els paràmetres de ruta al mètode.
Per obtenir recursos, heu de fer dues coses a l'aplicació laravel. Primer, heu de crear una ruta de recursos laravel que proporciona inserir, actualitzar, visualitzar i suprimir camins. En segon lloc, creeu un controlador de recursos que proporcioni un mètode per inserir, actualitzar, visualitzar i suprimir.
La preinstal·laciódefiLaravel nita ve amb dos camins: un per a la web i un altre per a l'API. Aquí teniu l'aspecte de la ruta al web a web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Laravel Middleware actua com a pont entre la petició i la reacció. Pot ser algun tipus de component de filtre.
laravel treballar amb a middleware que té la tasca de confirmar si l'aplicació client està verificada o no. En cas que es confirmi el client, l'encaminament es redirigeix a la pàgina d'inici o a una pàgina d'inici de sessió.
route
El codi anterior defiacaba un camí a la pàgina d'inici. Sempre que aquest camí rebi una sol·licitud get
/ /
, tornarà el view
welcome
.
Tots els camins de Laravel ho són definiti en el teu routing
, que es troben dins del directori dei routes
. Conseqüentment, l'AppProvidersRouteServiceProvider
de l'aplicació alinea aquests registres. L'arxiu route/web.php
conté les rutes que es gestionen per a la vostra interfície web.
L'estructura del camí és molt senzilla. Obriu el fitxer adequat (`web.php
` o `api.php
` ) i inicieu la línia de codi amb `Route:: `
, seguit de la sol·licitud que voleu assignar a aquesta ruta específica i, a continuació, especifiqueu la funció que es realitzarà després de la sol·licitud.
Laravel ofereix els següents mètodes de ruta:
get
post
put
delete
patch
options
Els camins són definitat a Laravel dins de la classe Route amb HTTP, la ruta per respondre i el tancament, o el controlador.
Vegem com podeu crear els vostres propis camins a Laravel.
Ara crearé un camí bàsic que imprimirà la taula de temps de 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
Al codi anterior, vaig crear una ruta de sol·licitud GET per a l'URL /table
, que imprimirà la taula de temps de 2 a la pantalla.
Ara vegem el mateix codi, parametritzant el nombre per al qual volem la taula de multiplicar:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Al codi el 'number
' entre claus representa el paràmetre, és a dir, el nombre pel qual es calcularà la taula de multiplicar. Sempre que s'especifiqui un URL del tipus /table/n
, llavors s'imprimirà la taula numèrica n
.
També hi ha la manera de combinar ambdues funcions en un sol camí. Laravel ofereix la funció de paràmetres opcionals que us permet afegir paràmetres opcionals mitjançant el signe d'interrogació '?' després del paràmetre opcional i del valor predefinit. Vegem l'exemple:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
Al codi anterior hem creat el nostre paràmetre de ruta, fent que el número sigui opcional, de manera que si un usuari encamina `/table
` llavors generarà la taula de 2 per defectedefinit i si un usuari s'adreça a `/table/{number}
Després la taula de números 'number'
es produirà.
A l'exemple anterior vam crear una ruta per generar la taula de multiplicar, però com podem assegurar-nos que el paràmetre de la ruta és realment un nombre, per evitar errors en generar la taula de multiplicar?
A Laravel, pots defiacabeu una restricció al paràmetre de ruta mitjançant el mètode `where
` a la instància de la ruta. El `where
` pren el nom del paràmetre i una expressió regular per a aquest paràmetre.
Ara vegem un exemple d'una restricció per al nostre paràmetre `{numero}
` per assegurar-se que només es passa un número a la funció.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
Al codi anterior, hem utilitzat una expressió regular per al número de camí. Ara, si un usuari intenta dirigir-se a /taula/núm es mostrarà una excepció NotFoundHttpException.
A Laravel, pots defiacabar un mètode del controlador per a un camí. Un mètode de controlador realitza totes les accions definit cada vegada que un usuari accedeix a la ruta.
Amb el codi següent estem assignant el mètode del controlador 'functionname'
a una ruta:
Route:: get ( '/home' , 'YourController@functionname' ) ;
El codi comença amb `Route::`
i per tant defiacaba el mètode de sol·licitud per al camí. Posteriorment, defiAcabeu el camí i el controlador juntament amb el mètode afegint el símbol @ abans del nom del mètode.
A Laravel, pots defiacaba un nom per al teu camí. Aquest nom sovint és molt útil. Per exemple, si voleu redirigir un usuari d'una ubicació a una altra, no cal que ho feu defiacabeu l'URL de redirecció complet. Només pots donar el seu nom. Tu pots defiacabeu el nom de la ruta amb el mètode `name
` a la instància de ruta.
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’);
Ara, podria regenerar l'URL d'aquest camí, mitjançant el codi següent:
$url = route('table');
De la mateixa manera, per a la redirecció a aquest URL, la sintaxi correcta seria:
return redirect()->route('table');
Route Groups
I Route Groups
, literalment grups de camins, és una característica essencial de Laravel, que us permet agrupar camins. Els grups de camins són útils quan voleu aplicar atributs a tots els camins agrupats. Si utilitzeu grups de camins, no cal que apliqueu els atributs individualment a cada camí; això evita la duplicació. Et permet compartir atributs com middleware
o namespaces
, sense defiacabar aquests atributs en cada camí individual. Aquests atributs compartits es poden passar en un format de matriu com a primer paràmetre al mètode Route::group
.
Sintaxi d'un grup de rutes
Route::group([], callback);
colom []: és una matriu passat al mètode del grup com a primer paràmetre.
Exemple de Route Group
en 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" ;
});
});
En el codi, defianem a trobar el mètode grup (), que conté els dos paràmetres, és a dir array
e closure
. Dins el closure
, Podem defiacabar quants route
volem. En el codi anterior, tenim defiacabat tres route
.
Si a través del navegador accedim a l'URL localhost/myproject/first
després intervé el primer route
escrivint al navegador first way route
.
Amb l'URL localhost/myproject/second
després ve el segon route
escrivint al navegador second way route
.
Mentre que amb l'URL localhost/myproject/third
després ve la tercera route
escrivint al navegador third way route
.
Route Groups
Els prefixos de route
s'utilitzen quan volem proporcionar una estructura d'URL comuna a múltiples route
.
Podem especificar el prefix per a tots els camins definits dins del grup utilitzant l'opció de matriu de prefixos a 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";
});
});
El codi conté tres camins als quals es pot accedir des dels URL següents:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
També podem assignar middleware a totes les rutes d'un grup. El middleware ha de ser defiacabat abans de crear el grup. Per veure com fer-ho, llegiu el nostre article Laravel middleware com funciona.
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";
});
});
El mètode name
s'utilitza per prefixar cada nom de route
amb una cadena especificada. En el mètode name
, hem d'especificar la cadena amb un caràcter final al prefix.
exemple web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Es va realitzar una operació d'oftalmoplàstia amb el visualitzador comercial Apple Vision Pro a la Policlínica de Catània...
El desenvolupament de la motricitat fina a través del color prepara els nens per a habilitats més complexes com escriure. Per acolorir...
El sector naval és una veritable potència econòmica mundial, que ha navegat cap a un mercat de 150 milions...
Dilluns passat, el Financial Times va anunciar un acord amb OpenAI. FT autoritza el seu periodisme de classe mundial...