Məqalələr

Laravel: laravel marşrutlaşdırmasına giriş

Laravel-də marşrutlaşdırma istifadəçilərə bütün proqram sorğularını müvafiq nəzarətçiyə yönləndirməyə imkan verir. Laravel-dəki əksər əsas marşrutlar sadə və ifadəli marşrutlaşdırma üsulunu təmin etməklə, Vahid Aktiv İdentifikatorunu tanıyır və qəbul edir.

Marşrut (marşrut) nədir?

Yol, tətbiqiniz üçün sorğu URL-i yaratmaq üçün bir yoldur. Bu URL-lərin vebsaytdakı xüsusi fayllarla əlaqələndirilməsinə ehtiyac yoxdur və insanlar tərəfindən oxuna bilən və SEO dostudur.

Laraveldə yollar le qovluğunda yaradılır routes. Onlar faylda yaradılmışdır web.php vebsaytlar üçün və daxilində api.php API-lər üçün.

Bunlar route qrupa təyin olunurlar middleware seans statusu və təhlükəsizliyi vurğulayan şəbəkə CSRF. Daxil olan marşrutlar route/api.php onlar vətəndaşlığı olmayandır və API ara proqram qrupuna təyin edilir.
Əvvəlcədən quraşdırmadefiLaravel nita biri veb, digəri API üçün iki yol ilə gəlir. Veb üçün yol belə görünür web.php:

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

Laraveldə marşrut nədir?

Bütün Laravel yolları var definiti qovluğunda yerləşən yol fayllarında routes. Marşrut idarəetmə tətbiqi, defifaylda qeyd olunub App\Providers\RouteServiceProvider, bu faylların avtomatik sıralanmasına diqqət yetirir. Fayl route/web.php defiveb-interfeysiniz üçün yolları müəyyənləşdirir.

Bu mümkündür defibu nəzarətçi hərəkəti üçün yolu aşağıdakı kimi təyin edin:

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

Route::resource: üsul Route::resource proqram üçün tələb olunan bütün əsas yolları istehsal edir və nəzarətçi sinfi vasitəsilə idarə olunur.

Sorğu müəyyən edilmiş marşrut URI-yə uyğun olduqda, metod işə salınır show definəzarətçidə tamamlandı App\Http\ControllersUserController, marşrut parametrlərinin metoda ötürülməsi.

Resurslar üçün tətbiqdə iki şey etməlisiniz Laravel. Əvvəlcə resurs yolunu yaratmalısınız Laravel daxil etmək, yeniləmək, baxmaq və silmək yollarını təmin edir. İkincisi, daxil etmək, yeniləmək, baxmaq və silmək üçün bir üsul təmin edən resurs nəzarətçisi yaradın.

Əvvəlcədən quraşdırmadefiLaravel nita iki yolla gəlir: biri veb, digəri API üçün. Vebə gedən marşrut web.php-də belə görünür:

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

return view(‘welcome’);

});

Laravel Middleware sorğu ilə reaksiya arasında körpü rolunu oynayır. Bir növ filtr komponenti ola bilər.

Laravel ilə işləmək orta proqram müştəri müraciətinin yoxlanılıb-yoxlanılmadığını təsdiqləmək vəzifəsi olan. Müştəri təsdiq edildikdə, marşrutlaşdırma əsas səhifəyə və ya giriş səhifəsinə yönləndirilir.

üçün üsullar route

Əvvəlki kod defiana səhifəyə yol açır. Hər dəfə bu marşruta sorğu gələndə get üçün /, qaytaracaq view welcome

Bütün Laravel yolları var definiti sizin routing, dei kataloqunun daxilində yerləşir routes. Nəticədə, l'AppProvidersRouteServiceProvider tətbiqin bu qeydləri sıralayır. Fayl route/web.php veb interfeysiniz üçün idarə olunan marşrutları ehtiva edir.

Yolun quruluşu çox sadədir. Müvafiq faylı açın (`web.phpo `api.php) və kod xəttini ilə başlayın `Route:: `, ardınca həmin xüsusi marşruta təyin etmək istədiyiniz sorğu və sorğudan sonra yerinə yetiriləcək funksiyanı təyin edin.

Laravel aşağıdakı yol üsullarını təklif edir:

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

Yollar var defiLaravel-də HTTP ilə Route sinfi, cavab veriləcək və bağlanacaq marşrut və ya nəzarətçi.

Laravel-də yolları necə yaratmaq olar

Laravel-də öz yollarınızı necə yarada biləcəyinizi görək.

Əsas GET yolu

İndi mən 2-nin vaxt cədvəlini çap edəcək əsas yol yaradacağam.

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

Yuxarıdakı kodda URL üçün GET sorğu yolunu yaratdım /table, ekranda 2-nin vaxt cədvəlini çap edəcək.

İndi vurma cədvəlini istədiyimiz nömrəni parametrləşdirərək eyni kodu görək:

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

kodda 'number' mötərizələr arasında parametr, yəni vurma cədvəlinin hesablanacağı nömrəni ifadə edir. Növün URL-i müəyyən edildikdə /table/n, sonra nömrə cədvəli çap olunacaq n.

Hər iki xüsusiyyəti bir yolda birləşdirməyin yolu da var. Laravel '?' sual işarəsindən istifadə edərək əlavə parametrlər əlavə etməyə imkan verən əlavə parametrlər funksiyasını təklif edir. isteğe bağlı parametrdən və ilkin dəyərdən sonradefigecə. Nümunəyə baxaq:

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

Yuxarıdakı kodda biz marşrut parametrimizi yaratdıq, nömrəni istəyə görə etdik, buna görə də istifadəçi marşrutlaşdırarsa `/table` onda defolt olaraq 2 cədvəlini yaradacaqdefinite və əgər istifadəçi `-ə yönləndirirsə/table/{number}Sonra nömrə cədvəli 'number' istehsal olunacaq.

Marşrut parametrləri üçün məhdudiyyətlər kimi müntəzəm ifadələr

Əvvəlki misalda vurma cədvəlini yaratmaq üçün yol yaratdıq, lakin vurma cədvəlini yaradan zaman xətalara yol verməmək üçün yolun parametrinin əslində ədəd olmasını necə təmin edə bilərik?

Laraveldə edə bilərsiniz defi` metodundan istifadə edərək marşrut parametrinə məhdudiyyət qoyunwhere` marşrut nümunəsində. The `where` həmin parametr üçün parametrin adını və müntəzəm ifadəsini qəbul edir.

İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.

İndi ` parametrimiz üçün məhdudiyyət nümunəsinə baxaq{numero}` funksiyaya yalnız nömrənin ötürüldüyünə əmin olmaq üçün.

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

Yuxarıdakı kodda yol nömrəsi üçün müntəzəm ifadədən istifadə etdik. İndi bir istifadəçi marşrutlaşdırmağa çalışarsa /cədvəl/no nümayiş olunacaq NotFoundHttpException istisnası.

Nəzarət funksiyası ilə Laravel Routing

Laraveldə edə bilərsiniz defibir yol üçün Nəzarətçi metodu. Nəzarətçi metodu bütün hərəkətləri yerinə yetirir defiistifadəçi hər dəfə marşruta daxil olduqda.
Aşağıdakı kodla biz nəzarətçi metodunu təyin edirik 'functionname' marşruta:

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

Kod ilə başlayır `Route::` və buna görə də defiyol üçün sorğu metodunu təmin edir. Sonradan, defiMetod adından əvvəl @ simvolu əlavə edərək, yolunuzu və nəzarətçinizi metodla birlikdə tamamlayın.

Yola bir ad verin

Laraveldə edə bilərsiniz defiyolunuza bir ad verin. Bu ad çox vaxt çox faydalıdır. Məsələn, bir istifadəçini bir yerdən digərinə yönləndirmək istəyirsinizsə, buna ehtiyac yoxdur defitam yönləndirmə URL-ni əldə edin. Sadəcə adını verə bilərsiniz. Bacararsan defi` metodundan istifadə edərək marşrutun adını yazınname` marşrut nümunəsində.

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

İndi mən bu yol üçün url-i aşağıdakı kod vasitəsilə bərpa edə bilərdim:

$url = route('table');

Eynilə, bu URL-ə yönləndirmə üçün düzgün sintaksis belə olardı:

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

Route Groups

I Route Groups, sözün əsl mənasında yol qrupları, Laravel-də yolları qruplaşdırmağa imkan verən vacib xüsusiyyətdir. Bütün qruplaşdırılmış yollara atributları tətbiq etmək istədiyiniz zaman yol qrupları faydalıdır. Əgər yol qruplarından istifadə edirsinizsə, atributları hər bir yola ayrı-ayrılıqda tətbiq etmək lazım deyil; bu təkrarlamanın qarşısını alır. kimi atributları paylaşmağa imkan verir middleware o namespaces, olmadan defibu atributları hər bir fərdi yolda bitirin. Bu paylaşılan atributlar metoda ilk parametr kimi massiv formatında ötürülə bilər Route::group.

Marşrut qrupunun sintaksisi

Route::group([], callback);  

göyərçin []: birinci parametr kimi qrup metoduna ötürülən massivdir.

Məsələn Route Group ilə 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" ;   
   });  
});  

Kodda, defiüsulunu tapaq qrup(), iki parametri ehtiva edən, yəni array e closure. İçəridə closure, Biz bacarırıq defineçə bitir route Biz istəyirik. Yuxarıdakı kodda bizdə var defiüçü tamamladı route.

Əgər brauzer vasitəsilə biz URL-ə daxil oluruq localhost/myproject/first sonra birincisi müdaxilə edir route brauzerdə yazın first way route.

URL ilə localhost/myproject/second sonra ikincisi gəlir route brauzerdə yazın second way route.

URL ilə ikən localhost/myproject/third sonra üçüncü gəlir route brauzerdə yazın third way route.

prefiksləri Route Groups

prefiksləri route onlar çoxlu ümumi URL strukturunu təmin etmək istədikdə istifadə olunur route.

Biz bütün yollar üçün prefiksi təyin edə bilərik defiprefiks massivi seçimindən istifadə edərək qrup daxilində nites Route Groups.

Məsələn 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 aşağıdakı URL-lərdən əldə edilə bilən üç yoldan ibarətdir:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Orta proqram

Biz həmçinin qrup daxilində bütün marşrutlara ara proqram təyin edə bilərik. Ara proqram olmalıdır defiqrupu yaratmazdan əvvəl tamamlandı. Bunu necə edəcəyinizi öyrənmək üçün məqaləmizi oxuyun Laravel ara proqramı necə işləyir.

Misal:

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

Yol adı prefiksləri

Metod name hər adının prefiksi üçün istifadə olunur route müəyyən bir sətir ilə. Metodda name, prefiksdə arxada gələn simvolu olan sətri təyin etməliyik.

misal web.php

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

Ercole Palmeri

İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.

Articoli recenti

Veeam müdafiədən tutmuş cavab və bərpaya qədər ransomware üçün ən əhatəli dəstəyi təqdim edir

Coveware by Veeam kiber qəsb hallarına cavab xidmətləri göstərməyə davam edəcək. Coveware məhkəmə və remediasiya imkanları təklif edəcək...

23 Aprel 2024

Yaşıl və Rəqəmsal İnqilab: Proqnozlaşdırılan Baxım Neft və Qaz Sənayesini necə çevirir?

Proqnozlaşdırılan texniki xidmət zavodun idarə edilməsinə innovativ və proaktiv yanaşma ilə neft və qaz sektorunda inqilab edir.…

22 Aprel 2024

Böyük Britaniyanın antiinhisar tənzimləyicisi GenAI üzərində BigTech həyəcanını qaldırır

Böyük Britaniyanın CMA süni intellekt bazarında Big Tech-in davranışı ilə bağlı xəbərdarlıq edib. Orada…

18 Aprel 2024

Casa Green: İtaliyada davamlı gələcək üçün enerji inqilabı

Avropa İttifaqı tərəfindən binaların enerji səmərəliliyini artırmaq üçün tərtib edilən "Yaşıl Evlər" Fərmanı qanunvericilik prosesini yekunlaşdırdı ...

18 Aprel 2024