Články

Laravel: úvod do směrování laravelů

Směrování v Laravel umožňuje uživatelům směrovat všechny požadavky aplikací na příslušný řadič. Většina primárních cest v Laravelu rozpoznává a přijímá Uniform Asset Identifier spolu s uzavřením, což poskytuje jednoduchý a výrazný způsob směrování.

Co je to trasa (trasa)?

Cesta je způsob, jak vytvořit adresu URL požadavku pro vaši aplikaci. Tyto adresy URL nemusejí být spojeny s konkrétními soubory na webu a jsou čitelné pro člověka a přátelské k SEO.

V Laravelu se cesty vytvářejí uvnitř složky le routes. Jsou vytvořeny v souboru web.php pro webové stránky a uvnitř api.php pro API.

Tyto route jsou přiřazeny ke skupině middleware síť, zvýraznění stavu relace a zabezpečení CSRF. Trasy v route/api.php jsou bezstavové a jsou přiřazeny ke skupině middlewaru API.
PředinstalacedefiLaravel nita přichází se dvěma cestami, jednou pro web a druhou pro API. Takto vypadá cesta pro web web.php:

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

Jaká je trasa v Laravelu?

Všechny cesty Laravel jsou definiti v souborech cesty umístěných v adresáři routes. aplikace pro správu trasy, defidokončeno ve spisu App\Providers\RouteServiceProvider, se postará o automatické seřazení těchto souborů. Soubor route/web.php defiupraví cesty pro vaše webové rozhraní.

Č. Možnost defizadejte cestu pro tuto akci ovladače takto:

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

Route::resource: metoda Route::resource vytváří všechny základní cesty požadované pro aplikaci a je spravován prostřednictvím třídy řadiče.

Když požadavek odpovídá zadanému identifikátoru URI trasy, je vyvolána metoda show defihotovo v ovladači App\Http\ControllersUserController, předávání parametrů trasy metodě.

Pro zdroje musíte v aplikaci udělat dvě věci laravel. Nejprve musíte vytvořit cestu ke zdroji laravel který poskytuje vkládání, aktualizaci, zobrazení a odstranění cest. Za druhé vytvořte řadič prostředků, který poskytuje metodu pro vkládání, aktualizaci, prohlížení a odstraňování.

PředinstalacedefiLaravel nita přichází se dvěma cestami: jednou pro web a jednou pro API. Takto vypadá cesta na web v web.php:

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

return view(‘welcome’);

});

Laravel Middleware funguje jako most mezi požadavkem a reakcí. Může to být nějaká součást filtru.

laravel pracovat s a middleware která má za úkol potvrdit, zda je klientská aplikace ověřena či nikoliv. V případě, že je klient potvrzen, směrování přesměruje na domovskou stránku nebo přihlašovací stránku.

Metody pro route

Předchozí kód defizobrazí cestu na domovskou stránku. Kdykoli tato cesta obdrží požadavek get za /, vrátí view welcome

Všechny cesty Laravel jsou definiti ve vašem routing, které jsou umístěny uvnitř adresáře dei routes. Tudíž, l'AppProvidersRouteServiceProvider aplikace seřadí tyto záznamy. Soubor route/web.php obsahuje trasy, které jsou spravovány pro vaše webové rozhraní.

Struktura cesty je velmi jednoduchá. Otevřete příslušný soubor (`web.phpo `api.php) a začněte řádek kódu pomocí `Route:: `, následovaný požadavkem, který chcete přiřadit k této konkrétní trase, a poté zadejte funkci, která bude provedena po požadavku.

Laravel nabízí následující metody cesty:

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

Cesty jsou defiv Laravelu v rámci třídy Route s HTTP, cestou, na kterou se má odpovědět a zavřít, nebo řadičem.

Jak vytvořit cesty v Laravelu

Podívejme se, jak si můžete v Laravelu vytvořit své vlastní cesty.

Základní GET cesta

Nyní vytvořím základní cestu, která vytiskne tabulku časů 2.

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

Ve výše uvedeném kódu jsem vytvořil cestu požadavku GET pro adresu URL /table, který na obrazovce vytiskne tabulku časů 2.

Nyní se podívejme na stejný kód, parametrizující číslo, pro které chceme tabulku násobení:

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

V kódu je 'number' mezi složenými závorkami představuje parametr, tedy číslo, pro které se bude násobící tabulka počítat. Kdykoli je zadána adresa URL typu /table/n, pak se vytiskne číselná tabulka n.

Existuje také způsob, jak spojit obě funkce v jedné cestě. Laravel nabízí funkci volitelných parametrů, která vám umožňuje přidat volitelné parametry pomocí otazníku '?' za volitelným parametrem a hodnotou predefinoc. Podívejme se na příklad:

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

Ve výše uvedeném kódu jsme vytvořili náš parametr route, takže číslo je nepovinné, takže pokud uživatel směruje `/table` pak ve výchozím nastavení vygeneruje tabulku 2definite a pokud uživatel směruje na `/table/{number}Pak číselná tabulka 'number' se bude vyrábět.

Regulární výrazy jako omezení pro parametry trasy

V předchozím příkladu jsme vytvořili cestu pro generování násobilky, ale jak můžeme zajistit, že parametrem cesty je skutečně číslo, abychom se vyhnuli chybám při generování násobilky?

V Laravelu můžete defiomezte parametr route pomocí metody `where` na instanci trasy. 'where` přebírá název parametru a regulární výraz pro tento parametr.

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Nyní se podívejme na příklad omezení pro náš parametr `{numero}`, abyste zajistili, že funkci bude předáno pouze číslo.

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

Ve výše uvedeném kódu jsme pro číslo cesty použili regulární výraz. Nyní, pokud se uživatel pokusí nasměrovat na /stůl/č se zobrazí výjimka NotFoundHttpException.

Laravel Routing s kontrolní funkcí

V Laravelu můžete definish metodu Controller pro trasu. Metoda ovladače provádí všechny akce definite pokaždé, když uživatel přistupuje k trase.
Pomocí následujícího kódu přiřazujeme metodu ovladače 'functionname' na cestu:

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

Kód začíná na `Route::` a proto defidokončí metodu požadavku na cestu. následně defiDokončete cestu a ovladač spolu s metodou přidáním symbolu @ před název metody.

Pojmenujte cestu

V Laravelu můžete defipojmenujte svou cestu. Toto jméno je často velmi užitečné. Pokud například chcete uživatele přesměrovat z jednoho místa na druhé, nemusíte definish celou adresu URL přesměrování. Můžete dát jeho jméno. Můžeš defizjistěte název trasy pomocí metody `name` v instanci trasy.

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’);

Nyní bych mohl regenerovat adresu URL pro tuto cestu pomocí následujícího kódu:

$url = route('table');

Podobně pro přesměrování na tuto adresu URL by správná syntaxe byla:

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

Route Groups

I Route Groups, doslova skupiny cest, je základní funkcí v Laravelu, která umožňuje seskupovat cesty. Skupiny cest jsou užitečné, když chcete použít atributy na všechny seskupené cesty. Pokud používáte skupiny cest, nemusíte atributy aplikovat jednotlivě na každou cestu; tím se zabrání duplicitě. Umožňuje vám sdílet atributy jako middleware o namespaces, bez defidokončit tyto atributy na každé jednotlivé cestě. Tyto sdílené atributy lze předat metodě ve formátu pole jako první parametr Route::group.

Syntaxe skupiny tras

Route::group([], callback);  

holubice []: je pole předané metodě group jako první parametr.

Příklad Route Group v 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" ;   
   });  
});  

V kódu definajdeme metodu skupina(), který obsahuje dva parametry, tzn array e closure. Uvnitř closure, Můžeme defidokončit kolik route chceme. Ve výše uvedeném kódu máme defiskončili tři route.

Pokud přes prohlížeč přistupujeme k URL localhost/myproject/first pak zasáhne první route psaní v prohlížeči first way route.

S adresou URL localhost/myproject/second pak přijde druhý route psaní v prohlížeči second way route.

Zatímco s URL localhost/myproject/third pak přijde třetí route psaní v prohlížeči third way route.

Předpony z Route Groups

Předpony route používají se, když chceme poskytnout strukturu URL společnou pro více route.

Můžeme zadat předponu pro všechny cesty definites v rámci skupiny pomocí možnosti pole prefixů in Route Groups.

Příklad 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";  
   });  
});  

Kód obsahuje tři cesty, ke kterým lze přistupovat z následujících adres URL:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Můžeme také přiřadit middleware všem trasám v rámci skupiny. Middleware musí být defidokončeno před vytvořením skupiny. Chcete-li zjistit, jak to udělat, přečtěte si náš článek Laravel middleware, jak to funguje.

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";  
   });  
  
});  

Předpony názvu cesty

Metoda name se používá pro předponu každého jména route se zadaným řetězcem. V metodě name, musíme zadat řetězec s koncovým znakem v prefixu.

příklad web.php

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

Ercole Palmeri

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Nedávné články

Výhody omalovánek pro děti - svět kouzel pro všechny věkové kategorie

Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…

2. května 2024

Budoucnost je tady: Jak lodní průmysl revolucionizuje globální ekonomiku

Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...

1. května 2024

Vydavatelé a OpenAI podepisují dohody o regulaci toku informací zpracovávaných umělou inteligencí

Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…

30. dubna 2024

Online platby: Zde je návod, jak vám streamovací služby umožňují platit navždy

Miliony lidí platí za streamovací služby a platí měsíční předplatné. Je obecný názor, že jste…

29. dubna 2024