Artikel

Laravel: bubuka laravel routing

Routing di Laravel ngamungkinkeun pamaké pikeun jalur sadaya requests aplikasi ka controller luyu. Paling ruteu primér dina Laravel ngakuan tur nampa hiji Uniform Asset Identifier sapanjang kalawan panutupanana a, nyadiakeun cara basajan tur ekspresif tina routing.

Naon jalur (rute)?

Jalurna mangrupikeun cara pikeun nyiptakeun URL pamundut pikeun aplikasi anjeun. URL ieu henteu kedah dikaitkeun sareng file khusus dina halaman wéb sareng tiasa dibaca manusa sareng ramah SEO.

Dina Laravel, jalur dijieun di jero folder le routes. Éta dijieun dina file web.php pikeun situs web, sarta dina api.php pikeun API.

Ieu route ditugaskeun ka grup middleware jaringan, panyorot status sési jeung kaamanan CSRF. Rute di route/api.php aranjeunna stateless sarta ditugaskeun ka grup middleware API.
Pra-instalasidefiLaravel nita hadir sareng dua jalur, hiji pikeun wéb sareng hiji pikeun API. Ieu kumaha jalan pikeun web di Sigana mah web.php:

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

Naon jalur di Laravel?

Sadaya jalur Laravel nyaéta definiti dina file jalur anu aya dina diréktori routes. Aplikasi manajemén rute, defidisimpen dina file App\Providers\RouteServiceProvider, ngurus otomatis ngajajar file ieu. The file route/web.php definishes jalur pikeun panganteur wéb anjeun.

Éta tiasa definish jalur pikeun aksi controller ieu saperti kieu:

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

Route::resource: métode Route::resource ngahasilkeun sakabéh jalur dasar diperlukeun pikeun aplikasi tur dikokolakeun ngaliwatan kelas controller.

Lamun pamundut cocog URI ruteu dieusian, metoda ieu invoked show defiréngsé dina controller App\Http\ControllersUserController, ngalirkeun parameter route ka métode.

Pikeun sumber, anjeun kedah ngalakukeun dua hal dina aplikasi Laravel. Kahiji, anjeun kudu nyieun jalur sumberdaya on Laravel nu nyadiakeun sisipan, update, nempo tur mupus jalur. Kadua, jieun hiji controller sumberdaya nu nyadiakeun metoda pikeun inserting, ngamutahirkeun, nempo, jeung mupus.

Pra-instalasidefiLaravel nita hadir sareng dua jalur: hiji pikeun wéb sareng hiji pikeun API. Ieu kumaha rute ka wéb dina web.php:

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

return view(‘welcome’);

});

Laravel Middleware tindakan minangka sasak antara pamundut jeung réaksi. Bisa jadi sababaraha jenis komponén filter.

Laravel gawé bareng a middleware anu ngagaduhan tugas pikeun ngonfirmasi naha aplikasi klien diverifikasi atanapi henteu. Upami klien dikonfirmasi, teras routing dialihkeun ka halaman bumi atanapi halaman login.

Métode pikeun route

Kode saméméhna definishes jalur ka kaca imah. Iraha waé jalur ieu nampi pamundut get per /, bakal mulang ka view welcome

Sadaya jalur Laravel nyaéta definiti di anjeun routing, nu lokasina di jero diréktori dei routes. Akibatna, l'AppProvidersRouteServiceProvider tina aplikasi baris nepi rékaman ieu. The file route/web.php ngandung ruteu anu dikokolakeun pikeun antarmuka wéb anjeun.

Struktur jalur basajan pisan. Buka file anu cocog (`web.phpo `api.php) tur mimitian garis kode kalawan `Route:: `, dituturkeun ku pamundut nu Anjeun hoyong napelkeun kana éta jalur husus lajeng tangtukeun pungsi nu bakal dipigawé nuturkeun pamundut nu.

Laravel nawiskeun metode jalur ieu:

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

Jalur anu defiNited di Laravel dina kelas Rute kalawan HTTP, jalur pikeun reply kana jeung nutup, atawa controller.

Kumaha cara nyiptakeun jalur di Laravel

Hayu urang tingali kumaha anjeun tiasa nyiptakeun jalur anjeun nyalira di Laravel.

Hiji jalur GET dasar

Ayeuna kuring badé nyiptakeun jalur dasar anu bakal nyitak tabel waktos 2.

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

Dina kode di luhur, kuring nyiptakeun jalur pamundut GET pikeun URL /table, anu bakal nyitak tabel kali 2 dina layar.

Ayeuna hayu urang tingali kodeu sarua, parameterizing jumlah nu urang hoyong tabel multiplication:

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

Dina kodeu 'number' antara braces ngagambarkeun parameter, nyaéta jumlah nu tabel multiplication bakal diitung. Iraha waé URL jinisna ditetepkeun /table/n, lajeng tabel angka bakal dicitak n.

Aya ogé cara pikeun ngagabungkeun duanana fitur dina hiji jalur. Laravel nawiskeun fitur parameter opsional anu ngamungkinkeun anjeun nambihan parameter opsional nganggo tanda tanya '?' sanggeus parameter pilihan jeung nilai pradefipeuting. Hayu urang tingali conto:

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

Dina kode di luhur urang dijieun parameter route urang, nyieun angka pilihan, jadi lamun hiji pamaké ruteu `/table` mangka bakal ngahasilkeun tabel 2 sacara standardefinite sareng upami pangguna nuju ka `/table/{number}Lajeng tabel angka 'number' bakal dihasilkeun.

Babasan biasa salaku konstrain pikeun parameter rute

Dina conto saméméhna kami dijieun jalur pikeun generating tabel multiplication, tapi kumaha urang bisa mastikeun yén parameter jalur sabenerna ngarupakeun angka, pikeun nyegah kasalahan nalika ngahasilkeun tabel multiplication?

Dina Laravel, anjeun tiasa definish hiji konstrain dina parameter route ngagunakeun métode `where` dina conto rute. The `where` nyandak nami parameter sareng ekspresi biasa pikeun parameter éta.

newsletter inovasi
Entong luput warta anu paling penting ngeunaan inovasi. Ngadaptar pikeun nampa aranjeunna ku email.

Ayeuna hayu urang tingali conto konstrain pikeun `parameter urang{numero}` pikeun mastikeun yén ngan ukur nomer anu dikirimkeun kana fungsina.

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

Dina kode di luhur, kami nganggo ekspresi biasa pikeun nomer jalur. Ayeuna, upami pangguna nyobian rute ka /meja/no bakal dipintonkeun iwal NotFoundHttpException.

Laravel Routing kalawan fungsi kontrol

Dina Laravel, anjeun tiasa definish metoda Controller pikeun ruteu. Hiji métode controller ngalakukeun sagala lampah defipeuting unggal pamaké ngakses ruteu.
Kalayan kode di handap ieu kami napelkeun metodeu controller 'functionname' ka jalur:

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

Kode dimimitian ku `Route::` lajeng definishes metoda pamundut pikeun jalur. Saterasna, defiRengse jalur anjeun sarta controller sapanjang kalawan métode ku nambahkeun simbol @ saméméh ngaran métode.

Pasihan nami jalan

Dina Laravel, anjeun tiasa definish ngaran pikeun jalan Anjeun. Ngaran ieu sering pisan mangpaat. Contona, upami anjeun hoyong alihan pamaké ti hiji lokasi ka lokasi sejen, anjeun teu kudu definish URL alihan lengkep. Anjeun ngan bisa masihan ngaranna. Anjeun tiasa definish nami rute nganggo metode `name` dina conto rute.

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

Ayeuna, kuring tiasa ngadamel deui url pikeun jalur ieu, ngalangkungan kodeu ieu:

$url = route('table');

Nya kitu, pikeun alihan ka URL ieu, sintaksis anu bener bakal:

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

Route Groups

I Route Groups, sacara harfiah grup jalur, mangrupa fitur penting dina Laravel, nu ngidinan Anjeun pikeun grup jalur. Grup jalur mangpaat nalika anjeun hoyong nerapkeun atribut ka sadaya jalur anu dikelompokkeun. Lamun make grup jalur, anjeun teu kudu nerapkeun atribut individual pikeun tiap jalur; ieu nyegah duplikasi. Eta ngidinan Anjeun pikeun babagi atribut kawas middleware o namespaces, sesah defirengse atribut ieu dina unggal jalur individu. Atribut anu dibagikeun ieu tiasa disalurkeun dina format Asép Sunandar Sunarya salaku parameter munggaran pikeun metodeu Route::group.

Sintaksis Grup Rute

Route::group([], callback);  

japati []: mangrupa Asép Sunandar Sunarya dibikeun ka metoda grup salaku parameter munggaran.

Conto tina Route Group nel wéb.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" ;   
   });  
});  

Dina kode, defihayu urang manggihan metoda golongan(), nu ngandung dua parameter, i.e array e closure. Di jero closure, urang tiasa defirengse sabaraha route urang hayang. Dina kode di luhur, urang boga defiréngsé tilu route.

Lamun ngaliwatan browser urang ngakses URL localhost/myproject/first tuluy nu kahiji campur route ngetik dina browser first way route.

Kalayan URL localhost/myproject/second lajeng datang kadua route ngetik dina browser second way route.

Bari jeung URL localhost/myproject/third lajeng datang katilu route ngetik dina browser third way route.

Prefiks tina Route Groups

Prefiks tina route aranjeunna dipaké nalika urang rék nyadiakeun struktur URL umum pikeun sababaraha route.

Urang bisa nangtukeun awalan pikeun sakabéh jalur definites dina grup ngagunakeun pilihan susunan awalan di Route Groups.

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

Kodeu ngandung tilu jalur anu tiasa diaksés tina URL di handap ieu:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Urang ogé bisa napelkeun middleware ka sadaya ruteu dina grup. middleware kudu defiréngsé saméméh nyieun grup. Pikeun ningali kumaha ngalakukeun ieu, baca tulisan kami Laravel middleware kumaha gawéna.

contona:

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 ngaran jalur

Cara na name dipaké pikeun awalan unggal ngaran route kalawan string husus. Dina métode name, urang kudu nangtukeun string kalawan karakter labuh dina awalan.

conto web.php

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

Ercole Palmeri

newsletter inovasi
Entong luput warta anu paling penting ngeunaan inovasi. Ngadaptar pikeun nampa aranjeunna ku email.

Artikel panganyarna

Mangpaat Kaca Mewarna pikeun Barudak - dunya sihir pikeun sagala umur

Ngembangkeun kaahlian motorik halus ngaliwatan ngawarnaan nyiapkeun barudak pikeun kaahlian leuwih kompleks kawas nulis. Pikeun ngawarnaan…

2 Méi 2024

Masa Depan Ieu Ieu: Kumaha Industri Pengiriman Revolutionizing Ékonomi Global

Sektor angkatan laut mangrupikeun kakuatan ékonomi global anu leres, anu nuju ka arah pasar 150 milyar ...

1 Méi 2024

Penerbit sareng OpenAI nandatanganan perjanjian pikeun ngatur aliran inpormasi anu diolah ku Artificial Intelligence

Senén kamari, Financial Times ngumumkeun deal sareng OpenAI. FT ngalisensikeun jurnalisme kelas dunya na…

April 30 2024

Pamayaran Online: Ieu Kumaha Ladenan Streaming Ngadamel Anjeun Mayar Salamina

Jutaan jalma mayar jasa streaming, mayar biaya langganan bulanan. Pendapat umum yén anjeun…

April 29 2024