artikel

Laravel: pengenalan kepada penghalaan laravel

Il routing in Laravel consente agli utenti di instradare tutte le richieste dell’applicazione al controller appropriato. La maggior parte dei percorsi primari in Laravel riconosce e accetta un Uniform Asset Identifier insieme a una chiusura, fornendo un modo semplice ed espressivo di instradamento.

Apakah laluan (laluan)?

Laluan ialah cara untuk membuat URL permintaan untuk aplikasi anda. URL ini tidak perlu dikaitkan dengan fail tertentu pada tapak web dan boleh dibaca oleh manusia dan mesra SEO.

Dalam Laravel, laluan dibuat di dalam folder le routes. Mereka dicipta dalam fail web.php untuk laman web, dan dalam api.php untuk API.

Ini route ditugaskan kepada kumpulan middleware rangkaian, menyerlahkan status sesi dan keselamatan CSRF. Laluan dalam route/api.php mereka tidak bernegara dan diperuntukkan kepada kumpulan perisian tengah API.
PrapemasangandefiLaravel nita datang dengan dua laluan, satu untuk web dan satu lagi untuk API. Beginilah rupa laluan untuk web in web.php:

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

Apakah laluan di Laravel?

Semua laluan Laravel adalah definiti dalam fail laluan yang terletak dalam direktori routes. Aplikasi pengurusan laluan, defiditapis dalam fail App\Providers\RouteServiceProvider, menguruskan membariskan fail ini secara automatik. Fail route/web.php defimenyempurnakan laluan untuk antara muka web anda.

Ada kemungkinan defiselesaikan laluan untuk tindakan pengawal ini seperti berikut:

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

Route::resource: cara Route::resource menghasilkan semua laluan asas yang diperlukan untuk aplikasi dan diuruskan melalui kelas pengawal.

Apabila permintaan sepadan dengan URI laluan yang ditentukan, kaedah itu digunakan show defiselesai dalam pengawal App\Http\ControllersUserController, menghantar parameter laluan kepada kaedah.

Untuk sumber, anda perlu melakukan dua perkara pada aplikasi Laravel. Pertama, anda perlu mencipta laluan sumber pada Laravel yang menyediakan sisipan, kemas kini, lihat dan padam laluan. Kedua, cipta pengawal sumber yang menyediakan kaedah untuk memasukkan, mengemas kini, melihat dan memadam.

PrapemasangandefiLaravel nita datang dengan dua laluan: satu untuk web dan satu untuk API. Inilah rupa laluan ke web dalam web.php:

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

return view(‘welcome’);

});

Laravel Middleware bertindak sebagai jambatan antara permintaan dan tindak balas. Ia boleh menjadi sejenis komponen penapis.

Laravel bekerja dengan a middleware yang mempunyai tugas untuk mengesahkan sama ada aplikasi klien telah disahkan atau tidak. Sekiranya pelanggan disahkan, maka penghalaan akan diubah hala ke halaman utama atau halaman log masuk.

Kaedah untuk route

Kod sebelumnya defimenyempurnakan laluan ke halaman utama. Setiap kali laluan ini menerima permintaan get untuk /, akan mengembalikan view welcome

Semua laluan Laravel adalah definiti dalam awak routing, yang terletak di dalam direktori dei routes. Akibatnya, l'AppProvidersRouteServiceProvider daripada permohonan membariskan rekod ini. Fail route/web.php mengandungi laluan yang diuruskan untuk antara muka web anda.

Struktur laluan adalah sangat mudah. Buka fail yang sesuai (`web.phpo `api.php) dan mulakan baris kod dengan `Route:: `, diikuti dengan permintaan yang anda ingin tetapkan kepada laluan khusus itu dan kemudian nyatakan fungsi yang akan dilakukan berikutan permintaan itu.

Laravel menawarkan kaedah laluan berikut:

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

Laluan adalah defidimasukkan dalam Laravel dalam kelas Laluan dengan HTTP, laluan untuk membalas dan menutup, atau pengawal.

Bagaimana untuk mencipta laluan dalam Laravel

Mari lihat bagaimana anda boleh mencipta laluan anda sendiri dalam Laravel.

Laluan GET asas

Sekarang saya akan mencipta laluan asas yang akan mencetak jadual masa 2.

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

Dalam kod di atas, saya mencipta laluan permintaan GET untuk URL /table, yang akan mencetak jadual masa 2 pada skrin.

Sekarang mari kita lihat kod yang sama, parameterkan nombor yang kita inginkan jadual pendaraban:

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

Dalam kod 'number' antara pendakap mewakili parameter, iaitu nombor yang jadual pendaraban akan dikira. Setiap kali URL jenis ditentukan /table/n, maka jadual nombor akan dicetak n.

Terdapat juga cara untuk menggabungkan kedua-dua ciri dalam satu laluan. Laravel menawarkan ciri parameter pilihan yang membolehkan anda menambah parameter pilihan menggunakan tanda soal '?' selepas parameter pilihan dan nilai pradefimalam. Mari lihat contoh:

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

Dalam kod di atas kami mencipta parameter laluan kami, menjadikan nombor itu pilihan, jadi jika laluan pengguna `/table` maka ia akan menjana jadual 2 secara lalaidefimalam dan jika pengguna menuju ke `/table/{number}Kemudian jadual nombor 'number' akan dihasilkan.

Ungkapan biasa sebagai kekangan untuk parameter laluan

Dalam contoh sebelumnya, kami mencipta laluan untuk menjana jadual pendaraban, tetapi bagaimanakah kami boleh memastikan bahawa parameter laluan itu sebenarnya adalah nombor, untuk mengelakkan ralat semasa menjana jadual pendaraban?

Dalam Laravel, anda boleh defiselesaikan kekangan pada parameter laluan menggunakan kaedah `where` pada contoh laluan. `where` mengambil nama parameter dan ungkapan biasa untuk parameter itu.

Surat berita inovasi
Jangan terlepas berita paling penting tentang inovasi. Daftar untuk menerimanya melalui e-mel.

Sekarang mari kita lihat contoh kekangan untuk parameter ` kami{numero}` untuk memastikan bahawa hanya nombor yang dihantar ke fungsi.

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

Dalam kod di atas, kami menggunakan ungkapan biasa untuk nombor laluan. Sekarang, jika pengguna cuba membuat laluan ke /meja/no akan dipaparkan pengecualian NotFoundHttpException.

Laluan Laravel dengan fungsi kawalan

Dalam Laravel, anda boleh definish kaedah Pengawal untuk laluan. Kaedah pengawal melaksanakan semua tindakan defimalam setiap kali pengguna mengakses laluan.
Dengan kod berikut kami memberikan kaedah pengawal 'functionname' ke laluan:

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

Kod bermula dengan `Route::` dan kemudian defimenyelesaikan kaedah permintaan untuk laluan. Selepas itu, defiSelesaikan laluan dan pengawal anda bersama kaedah dengan menambah simbol @ sebelum nama kaedah.

Beri nama laluan itu

Dalam Laravel, anda boleh definish nama untuk laluan anda. Nama ini selalunya sangat berguna. Sebagai contoh, jika anda ingin mengubah hala pengguna dari satu lokasi ke lokasi lain, anda tidak perlu melakukannya defiselesaikan URL ubah hala penuh. Anda hanya boleh memberikan namanya. Awak boleh defitamatkan nama laluan menggunakan kaedah `name` dalam contoh laluan.

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

Sekarang, saya boleh menjana semula url untuk laluan ini, melalui kod berikut:

$url = route('table');

Begitu juga, untuk mengubah hala ke URL ini, sintaks yang betul ialah:

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

Route Groups

I Route Groups, secara literal laluan kumpulan, ialah ciri penting dalam Laravel, yang membolehkan anda mengumpulkan laluan. Kumpulan laluan berguna apabila anda ingin menggunakan atribut pada semua laluan berkumpulan. Jika anda menggunakan kumpulan laluan, anda tidak perlu menggunakan atribut secara individu pada setiap laluan; ini mengelakkan pertindihan. Ia membolehkan anda berkongsi atribut seperti middleware o namespaces, tanpa defiselesaikan atribut ini pada setiap laluan individu. Atribut kongsi ini boleh dihantar dalam format tatasusunan sebagai parameter pertama kepada kaedah Route::group.

Sintaks Kumpulan Laluan

Route::group([], callback);  

di mana []: ialah tatasusunan yang dihantar kepada kaedah kumpulan sebagai parameter pertama.

Contoh daripada Route Group dalam 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" ;   
   });  
});  

Dalam kod, defijom cari kaedahnya kumpulan(), yang mengandungi dua parameter, i.e array e closure. Di dalam closure, kita boleh defihabis berapa route kami mahu. Dalam kod di atas, kita ada defihabis tiga route.

Jika melalui pelayar kita mengakses URL localhost/myproject/first kemudian yang pertama campur tangan route menaip dalam pelayar first way route.

Dengan URL localhost/myproject/second kemudian datang yang kedua route menaip dalam pelayar second way route.

Manakala dengan URL localhost/myproject/third kemudian datang yang ketiga route menaip dalam pelayar third way route.

Awalan daripada Route Groups

Awalan daripada route ia digunakan apabila kami ingin menyediakan struktur URL yang biasa kepada berbilang route.

Kita boleh menentukan awalan untuk semua laluan definites dalam kumpulan menggunakan pilihan tatasusunan awalan dalam Route Groups.

Contoh daripada 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 ini mengandungi tiga laluan yang boleh diakses daripada URL berikut:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

Middleware

Kami juga boleh menetapkan perisian tengah kepada semua laluan dalam kumpulan. Middleware mestilah defiselesai sebelum membuat kumpulan. Untuk melihat cara melakukan ini, baca artikel kami Laravel middleware bagaimana ia berfungsi.

contoh:

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

Awalan nama laluan

Cara name digunakan untuk memberi awalan setiap nama route dengan rentetan tertentu. Dalam kaedah name, kita perlu menentukan rentetan dengan aksara mengekor dalam awalan.

contoh web.php

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

Ercole Palmeri

Surat berita inovasi
Jangan terlepas berita paling penting tentang inovasi. Daftar untuk menerimanya melalui e-mel.

Artikel baru-baru ini

Masa Depan Di Sini: Bagaimana Industri Perkapalan Merevolusikan Ekonomi Global

Sektor tentera laut adalah kuasa ekonomi global yang sebenar, yang telah menavigasi ke arah pasaran 150 bilion...

1 Mei 2024

Penerbit dan OpenAI menandatangani perjanjian untuk mengawal selia aliran maklumat yang diproses oleh Kepintaran Buatan

Isnin lalu, Financial Times mengumumkan perjanjian dengan OpenAI. FT melesenkan kewartawanannya bertaraf dunia…

30 April 2024

Pembayaran Dalam Talian: Begini Cara Perkhidmatan Penstriman Membuat Anda Membayar Selama-lamanya

Berjuta-juta orang membayar untuk perkhidmatan penstriman, membayar yuran langganan bulanan. Adalah menjadi pendapat umum bahawa anda…

29 April 2024

Veeam menampilkan sokongan paling komprehensif untuk perisian tebusan, daripada perlindungan kepada tindak balas dan pemulihan

Coveware oleh Veeam akan terus menyediakan perkhidmatan tindak balas insiden pemerasan siber. Coveware akan menawarkan keupayaan forensik dan pemulihan…

23 April 2024