Ścieżka to sposób na utworzenie adresu URL żądania dla Twojej aplikacji. Te adresy URL nie muszą być powiązane z określonymi plikami w witrynie internetowej i są czytelne dla człowieka i przyjazne dla SEO.
W Laravel ścieżki są tworzone wewnątrz folderu plików routes
. Tworzone są w pliku web.php
dla stron internetowych i wewnątrz api.php
dla interfejsów API.
Te route
są przypisane do grupy middleware
sieci, podkreślając stan sesji i bezpieczeństwo CSRF
. Trasy w route/api.php
są bezstanowe i są przypisane do grupy oprogramowania pośredniczącego interfejsu API.
Wstępna instalacjadefiLaravel nita ma dwie ścieżki, jedną dla sieci i jedną dla API. Tak wygląda ścieżka do web w web.php
:
Route::get('/', function () {
return view('welcome');
});
Wszystkie ścieżki Laravel są definiti w plikach ścieżki znajdujących się w katalogu routes
. Aplikacja do zarządzania trasami, defizakończył się w pliku App\Providers\RouteServiceProvider
, dba o automatyczne wyrównanie tych plików. Plik route/web.php
defikończy ścieżki dla twojego interfejsu internetowego.
można defizakończ ścieżkę dla tej akcji kontrolera w następujący sposób:
Route::get(‘user/{id}’, ‘UserController@show’);
Route::resource
: metoda Route::resource
tworzy wszystkie podstawowe ścieżki wymagane dla aplikacji i jest zarządzany przez klasę kontrolera.
Gdy żądanie pasuje do określonego identyfikatora URI trasy, wywoływana jest metoda show
defizakończył się w sterowniku App\Http\ControllersUserController
, przekazując parametry trasy do metody.
Aby uzyskać zasoby, musisz wykonać dwie czynności w aplikacji laravel. Najpierw musisz utworzyć ścieżkę do zasobów laravel który zapewnia ścieżki wstawiania, aktualizowania, przeglądania i usuwania. Po drugie, utwórz kontroler zasobów, który zapewnia metodę wstawiania, aktualizowania, przeglądania i usuwania.
Wstępna instalacjadefiLaravel nita ma dwie ścieżki: jedną dla sieci i jedną dla API. Oto jak wygląda trasa do sieci w web.php:
Route::get(‘/’, function () {
return view(‘welcome’);
});
Oprogramowanie pośredniczące Laravel działa jako pomost między żądaniem a reakcją. Może to być jakiś element filtra.
laravel pracować z A oprogramowanie pośrednie który ma za zadanie potwierdzić, czy aplikacja kliencka jest zweryfikowana, czy nie. W przypadku potwierdzenia klienta, routing przekierowuje na stronę główną lub stronę logowania.
route
Poprzedni kod defikończy ścieżkę do strony głównej. Za każdym razem, gdy ta ścieżka otrzyma żądanie get
dla /
, zwróci view
welcome
.
Wszystkie ścieżki Laravel są definic w twoim routing
, które znajdują się w katalogu dei routes
. W konsekwencji, l'AppProvidersRouteServiceProvider
aplikacji zestawia te rekordy. Plik route/web.php
zawiera trasy, którymi zarządza interfejs sieciowy.
Struktura ścieżki jest bardzo prosta. Otwórz odpowiedni plik (`web.php
` o `api.php
` ) i rozpocznij linię kodu od `Route:: `
, a następnie żądanie, które chcesz przypisać do tej konkretnej trasy, a następnie określ funkcję, która zostanie wykonana po żądaniu.
Laravel oferuje następujące metody ścieżki:
get
post
put
delete
patch
options
Ścieżki są definited w Laravel w ramach klasy Route z HTTP, trasą, na którą należy odpowiedzieć i zamknięciem, lub kontrolerem.
Zobaczmy, jak możesz tworzyć własne ścieżki w Laravel.
Teraz utworzę podstawową ścieżkę, która wydrukuje tabliczkę mnożenia 2.
Route::get('/table', function () {
for($i =1; $i <= 10 ; $i++){
echo "$i * 2 = ". $i*2 ."<br>";
}
});
W powyższym kodzie utworzyłem ścieżkę żądania GET dla adresu URL /table
, co spowoduje wydrukowanie na ekranie tabliczki mnożenia liczby 2.
Zobaczmy teraz ten sam kod, parametryzujący liczbę, dla której chcemy tabliczkę mnożenia:
Route::get('/table/{number}', function ($number) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
W kodzie 'number
' w nawiasach oznacza parametr, czyli liczbę, dla której zostanie obliczona tabliczka mnożenia. Zawsze, gdy określony jest adres URL typu /table/n
, wtedy wydrukowana zostanie tabela liczb n
.
Istnieje również sposób na połączenie obu funkcji w jednej ścieżce. Laravel oferuje funkcję parametrów opcjonalnych, która umożliwia dodawanie opcjonalnych parametrów za pomocą znaku zapytania „?” po parametrze opcjonalnym i wartości wstępnejdefinoc. Zobaczmy przykład:
Route::get('/table/{number?}', function ($number = 2) {
for($i =1; $i <= 10 ; $i++){
echo "$i * $number = ". $i* $number ."<br>";
}
});
W powyższym kodzie stworzyliśmy nasz parametr trasy, czyniąc numer opcjonalnym, więc jeśli użytkownik trasuje `/table
` wtedy domyślnie wygeneruje tabelę 2definite i jeśli użytkownik kieruje się do `/table/{number}
Następnie tabela liczb 'number'
zostanie wyprodukowany.
W poprzednim przykładzie utworzyliśmy ścieżkę do generowania tabliczki mnożenia, ale jak możemy zapewnić, że parametr ścieżki jest w rzeczywistości liczbą, aby uniknąć błędów podczas generowania tabliczki mnożenia?
W Laravelu możesz defizakończyć ograniczenie parametru trasy za pomocą metody `where
` w instancji trasy. `where
` przyjmuje nazwę parametru i wyrażenie regularne dla tego parametru.
Zobaczmy teraz przykład ograniczenia dla naszego parametru `{numero}
` aby upewnić się, że do funkcji przekazywana jest tylko liczba.
Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {
for( $i = 1 ; $i < = 10 ; $i + + ) {
echo "$i * $numero = " . $i * $numero . "<br>" ;
}
} )->where( 'numero' , '[0-9]+' ) ;
W powyższym kodzie użyliśmy wyrażenia regularnego dla numeru ścieżki. Teraz, jeśli użytkownik spróbuje skierować do /tabela/nr zostanie wyświetlone wyjątek NotFoundHttpException.
W Laravelu możesz defizakończ metodę kontrolera dla ścieżki. Metoda kontrolera wykonuje wszystkie akcje definite za każdym razem, gdy użytkownik uzyskuje dostęp do trasy.
Za pomocą poniższego kodu przypisujemy metodę kontrolera 'functionname'
na trasę:
Route:: get ( '/home' , 'YourController@functionname' ) ;
Kod zaczyna się od `Route::`
a następnie defikończy metodę żądania dla ścieżki. Następnie, defiZakończ ścieżkę i kontroler wraz z metodą, dodając symbol @ przed nazwą metody.
W Laravelu możesz definadaj nazwę swojej ścieżce. Ta nazwa jest często bardzo przydatna. Na przykład, jeśli chcesz przekierować użytkownika z jednej lokalizacji do drugiej, nie musisz tego robić defizakończ pełny adres URL przekierowania. Możesz po prostu podać jego imię. Możesz defizakończ nazwę trasy za pomocą metody `name
` w instancji 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’);
Teraz mogę ponownie wygenerować adres URL tej ścieżki za pomocą następującego kodu:
$url = route('table');
Podobnie w przypadku przekierowania do tego adresu URL poprawna składnia wyglądałaby następująco:
return redirect()->route('table');
Route Groups
I Route Groups
, dosłownie grupy ścieżek, to podstawowa funkcja Laravela, która pozwala grupować ścieżki. Grupy ścieżek są przydatne, gdy chcesz zastosować atrybuty do wszystkich zgrupowanych ścieżek. Jeśli używasz grup ścieżek, nie musisz stosować atrybutów indywidualnie do każdej ścieżki; pozwala to uniknąć powielania. Pozwala udostępniać atrybuty, takie jak middleware
o namespaces
Bez defizakończyć te atrybuty na każdej ścieżce. Te wspólne atrybuty można przekazać w formacie tablicy jako pierwszy parametr metody Route::group
.
Składnia grupy tras
Route::group([], callback);
gołąb [ ]: jest tablicą przekazaną do metody group jako pierwszy parametr.
Przykład Route Group
w 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" ;
});
});
w kodzie defiznajdźmy metodę Grupa(), który zawiera dwa parametry, tj array
e closure
. W środku closure
, Możemy defidokończ ile route
chcemy. W powyższym kodzie mamy defiskończył trzy route
.
Jeśli przez przeglądarkę uzyskujemy dostęp do adresu URL localhost/myproject/first
wtedy pierwszy interweniuje route
wpisując w przeglądarce first way route
.
Z adresem URL localhost/myproject/second
potem przychodzi drugi route
wpisując w przeglądarce second way route
.
Podczas gdy z adresem URL localhost/myproject/third
potem przychodzi trzeci route
wpisując w przeglądarce third way route
.
Route Groups
Przedrostki route
są używane, gdy chcemy zapewnić strukturę adresu URL wspólną dla wielu route
.
Możemy określić prefiks dla wszystkich ścieżek definity w grupie za pomocą opcji tablicy prefiksów w Route Groups
.
Przykład 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";
});
});
Kod zawiera trzy ścieżki, do których można uzyskać dostęp z następujących adresów URL:
/movie/godfather ---> Godfather casting
/movie/pulpfiction ---> Pulp Fiction casting
/movie/forrestgump ---> Forrest Gump casting
Możemy również przypisać oprogramowanie pośredniczące do wszystkich tras w ramach grupy. Oprogramowanie pośrednie musi być defizakończone przed utworzeniem grupy. Aby dowiedzieć się, jak to zrobić, przeczytaj nasz artykuł Oprogramowanie pośredniczące Laravel, jak to działa.
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
służy do przedrostka każdej nazwy route
z określonym ciągiem. w metodzie name
, musimy określić ciąg ze znakiem końcowym w przedrostku.
przykład web.php
Route::name('movie.')->group(function()
{
Route::get('users', function()
{
return "movie.films";
})->name('films');
});
Ercole Palmeri
Coveware by Veeam będzie w dalszym ciągu świadczyć usługi reagowania na incydenty związane z wyłudzeniami cybernetycznymi. Coveware będzie oferować funkcje kryminalistyczne i naprawcze…
Konserwacja predykcyjna rewolucjonizuje sektor naftowo-gazowy dzięki innowacyjnemu i proaktywnemu podejściu do zarządzania zakładami.…
Brytyjskie CMA wydało ostrzeżenie dotyczące zachowań Big Tech na rynku sztucznej inteligencji. Tam…
Rozporządzenie w sprawie zielonych domów, opracowane przez Unię Europejską w celu zwiększenia efektywności energetycznej budynków, zakończyło proces legislacyjny…