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');
});
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.
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.php
` o `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.
Podívejme se, jak si můžete v Laravelu vytvořit své vlastní cesty.
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.
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.
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.
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.
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
.
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
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";
});
});
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
Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…
Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...
Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…
Miliony lidí platí za streamovací služby a platí měsíční předplatné. Je obecný názor, že jste…