towary

Laravel: wprowadzenie do routingu laravel

Routing w Laravel umożliwia użytkownikom kierowanie wszystkich żądań aplikacji do odpowiedniego kontrolera. Większość głównych tras w Laravel rozpoznaje i akceptuje Uniform Asset Identifier wraz z zamknięciem, zapewniając prosty i wyrazisty sposób trasowania.

Co to jest trasa (trasa)?

Ś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');
});

Co to jest trasa w Laravel?

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.

Metody dot 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.phpo `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.

Jak tworzyć ścieżki w Laravel

Zobaczmy, jak możesz tworzyć własne ścieżki w Laravel.

Podstawowa ścieżka GET

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.

Wyrażenia regularne jako ograniczenia dla parametrów trasy

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.

Biuletyn innowacji
Nie przegap najważniejszych wiadomości dotyczących innowacji. Zarejestruj się, aby otrzymywać je e-mailem.

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.

Laravel Routing z funkcją kontrolną

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.

Nadaj ścieżce nazwę

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 namespacesBez 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.

przedrostki 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

Middleware

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

Prefiksy nazw ścieżek

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

Biuletyn innowacji
Nie przegap najważniejszych wiadomości dotyczących innowacji. Zarejestruj się, aby otrzymywać je e-mailem.

Najnowsze artykuły

Veeam oferuje najbardziej wszechstronną obsługę oprogramowania ransomware, od ochrony po reagowanie i odzyskiwanie

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…

Kwiecień 23 2024

Rewolucja ekologiczna i cyfrowa: jak konserwacja predykcyjna zmienia przemysł naftowy i gazowy

Konserwacja predykcyjna rewolucjonizuje sektor naftowo-gazowy dzięki innowacyjnemu i proaktywnemu podejściu do zarządzania zakładami.…

Kwiecień 22 2024

Brytyjski organ antymonopolowy podnosi alarm BigTech w związku z GenAI

Brytyjskie CMA wydało ostrzeżenie dotyczące zachowań Big Tech na rynku sztucznej inteligencji. Tam…

Kwiecień 18 2024

Casa Green: rewolucja energetyczna dla zrównoważonej przyszłości we Włoszech

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…

Kwiecień 18 2024