Artikel

Laravel: pengantar perutean laravel

Perutean di Laravel memungkinkan pengguna untuk merutekan semua permintaan aplikasi ke pengontrol yang sesuai. Sebagian besar rute utama di Laravel mengenali dan menerima Pengidentifikasi Aset Seragam bersama dengan penutupan, menyediakan cara perutean yang sederhana dan ekspresif.

Apa itu rute (rute)?

Path adalah cara untuk membuat URL permintaan untuk aplikasi Anda. URL ini tidak perlu dikaitkan dengan file tertentu di situs web dan dapat dibaca manusia serta ramah SEO.

Di Laravel, jalur dibuat di dalam folder file routes. Mereka dibuat dalam file web.php untuk situs web, dan di dalam api.php untuk API.

Ini route ditugaskan ke grup middleware jaringan, menyoroti status sesi dan keamanan CSRF. Rute di route/api.php mereka tidak memiliki kewarganegaraan dan ditugaskan ke grup middleware API.
Pra-instalasidefiLaravel nita hadir dengan dua jalur, satu untuk web dan satu lagi untuk API. Seperti inilah tampilan jalur untuk web web.php:

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

Apa itu rute di Laravel?

Semua jalur Laravel adalah definiti di file path yang terletak di dalam direktori routes. Aplikasi manajemen rute, defiselesai di file App\Providers\RouteServiceProvider, menangani pengurutan file-file ini secara otomatis. Berkas route/web.php defimenyelesaikan jalur untuk antarmuka web Anda.

È kemungkinan defiselesaikan jalur untuk tindakan pengontrol ini sebagai berikut:

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

Route::resource: metode Route::resource menghasilkan semua jalur dasar yang diperlukan untuk aplikasi dan dikelola melalui kelas pengontrol.

Saat permintaan cocok dengan URI rute yang ditentukan, metode ini akan dipanggil show defiselesai di controller App\Http\ControllersUserController, meneruskan parameter rute ke metode.

Untuk sumber daya, Anda perlu melakukan dua hal pada aplikasi LARAVEL. Pertama, Anda perlu membuat jalur sumber daya LARAVEL yang menyediakan jalur sisipkan, perbarui, lihat, dan hapus. Kedua, buat pengontrol sumber daya yang menyediakan metode untuk memasukkan, memperbarui, melihat, dan menghapus.

Pra-instalasidefiLaravel nita hadir dengan dua jalur: satu untuk web dan satu lagi untuk API. Inilah tampilan rute ke web di web.php:

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

return view(‘welcome’);

});

Perangkat Tengah Laravel bertindak sebagai jembatan antara permintaan dan reaksi. Ini bisa berupa semacam komponen filter.

LARAVEL bekerja dengan middleware yang memiliki tugas untuk mengkonfirmasi apakah aplikasi client sudah terverifikasi atau belum. Jika klien dikonfirmasi, maka perutean dialihkan ke halaman beranda atau halaman login.

Metode untuk route

Kode sebelumnya defimenyelesaikan jalur ke beranda. Setiap kali rute ini menerima permintaan get untuk /, akan mengembalikan view welcome

Semua jalur Laravel adalah definiti di kamu routing, yang terletak di dalam direktori dei routes. Akibatnya, l'AppProvidersRouteServiceProvider dari aplikasi berbaris catatan ini. Berkas route/web.php berisi rute yang dikelola untuk antarmuka web Anda.

Struktur jalurnya sangat sederhana. Buka file yang sesuai (`web.phpo `api.php) dan mulai baris kode dengan `Route:: `, diikuti dengan permintaan yang ingin Anda tetapkan ke rute tertentu tersebut, lalu tentukan fungsi yang akan dijalankan mengikuti permintaan tersebut.

Laravel menawarkan metode jalur berikut:

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

Jalan-jalannya adalah definited di Laravel dalam kelas Route dengan HTTP, rute untuk membalas dan menutup, atau controller.

Cara membuat jalur di Laravel

Mari kita lihat bagaimana Anda bisa membuat jalur Anda sendiri di Laravel.

Jalur GET dasar

Sekarang saya akan membuat jalur dasar yang akan mencetak tabel perkalian 2.

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

Dalam kode di atas, saya membuat jalur permintaan GET untuk URL /table, yang akan mencetak tabel perkalian 2 di layar.

Sekarang mari kita lihat kode yang sama, membuat parameter angka yang kita inginkan untuk tabel perkaliannya:

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

Dalam kode 'number' antara tanda kurung mewakili parameter, yaitu angka yang akan dihitung oleh tabel perkalian. Setiap kali URL jenis ditentukan /table/n, maka tabel nomor akan dicetak n.

Ada juga cara menggabungkan kedua fitur dalam satu jalur. Laravel menawarkan fitur parameter opsional yang memungkinkan Anda menambahkan parameter opsional menggunakan tanda tanya '?' setelah parameter opsional dan nilai awaldefimalam. Mari kita lihat contohnya:

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

Pada kode di atas kita membuat parameter rute kita, menjadikan nomor itu opsional, jadi jika pengguna merutekan `/table` maka itu akan menghasilkan tabel 2 secara defaultdefinite dan jika pengguna merutekan ke `/table/{number}Kemudian tabel nomor 'number' akan diproduksi.

Ekspresi reguler sebagai kendala untuk parameter rute

Pada contoh sebelumnya kita membuat jalur untuk membuat tabel perkalian, tetapi bagaimana kita dapat memastikan bahwa parameter jalur sebenarnya adalah angka, untuk menghindari kesalahan saat membuat tabel perkalian?

Di Laravel, Anda bisa defiselesaikan batasan pada parameter rute menggunakan metode `where` pada instance rute. `where` mengambil nama parameter dan ekspresi reguler untuk parameter itu.

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Sekarang mari kita lihat contoh batasan untuk parameter ` kita{numero}` untuk memastikan bahwa hanya nomor yang diteruskan 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 kode di atas, kami menggunakan ekspresi reguler untuk nomor jalur. Sekarang, jika pengguna mencoba merutekan ke /meja/no akan ditampilkan pengecualian NotFoundHttpException.

Laravel Routing dengan fungsi kontrol

Di Laravel, Anda bisa defiselesaikan metode Pengontrol untuk jalur. Metode pengontrol melakukan semua tindakan definite setiap kali pengguna mengakses rute.
Dengan kode berikut kami menetapkan metode pengontrol 'functionname' ke rute:

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

Kode dimulai dengan `Route::` dan kemudian defimenyelesaikan metode permintaan untuk jalur. Kemudian, defiSelesaikan jalur dan pengontrol Anda bersama dengan metode dengan menambahkan simbol @ sebelum nama metode.

Beri nama jalan

Di Laravel, Anda bisa defiselesaikan nama untuk jalanmu. Nama ini seringkali sangat berguna. Misalnya, jika Anda ingin mengalihkan pengguna dari satu lokasi ke lokasi lain, Anda tidak perlu melakukannya defiselesaikan URL pengalihan penuh. Anda hanya bisa memberikan namanya. Kamu bisa defiselesaikan nama rute menggunakan metode `name` dalam contoh 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’);

Sekarang, saya dapat membuat ulang url untuk jalur ini, melalui kode berikut:

$url = route('table');

Demikian pula, untuk mengarahkan ulang ke URL ini, sintaks yang benar adalah:

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

Route Groups

I Route Groups, secara harfiah grup jalur, adalah fitur penting di Laravel, yang memungkinkan Anda untuk mengelompokkan jalur. Grup jalur berguna saat Anda ingin menerapkan atribut ke semua jalur yang dikelompokkan. Jika Anda menggunakan grup jalur, Anda tidak perlu menerapkan atribut satu per satu ke setiap jalur; ini menghindari duplikasi. Ini memungkinkan Anda untuk berbagi atribut seperti middleware o namespaces, tanpa defiselesaikan atribut ini di setiap jalur individu. Atribut bersama ini dapat diteruskan dalam format array sebagai parameter pertama ke metode Route::group.

Sintaks Grup Rute

Route::group([], callback);  

merpati [ ]: adalah array yang diteruskan ke metode grup sebagai parameter pertama.

Contoh Route Group di 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 kode, defimari kita temukan metodenya kelompok(), yang berisi dua parameter, yaitu array e closure. Di dalam closure, Kita dapat defihabis berapa route kami ingin. Dalam kode di atas, kita punya defihabis tiga route.

Jika melalui browser kita mengakses URL tersebut localhost/myproject/first lalu yang pertama mengintervensi route mengetik di browser first way route.

Dengan URL localhost/myproject/second lalu datang yang kedua route mengetik di browser second way route.

Sementara dengan URL localhost/myproject/third lalu datang yang ketiga route mengetik di browser third way route.

Awalan dari Route Groups

Awalan dari route mereka digunakan ketika kami ingin memberikan struktur URL yang umum ke banyak route.

Kami dapat menentukan awalan untuk semua jalur definites dalam grup menggunakan opsi larik awalan di Route Groups.

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

Kode berisi tiga jalur yang dapat diakses dari URL berikut:

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

middleware

Kami juga dapat menetapkan middleware ke semua rute dalam grup. Middleware harus defiselesai sebelum membuat grup. Untuk melihat bagaimana melakukan ini, baca artikel kami Middleware Laravel cara kerjanya.

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 jalur

Metode name digunakan untuk awalan setiap nama route dengan string yang ditentukan. Dalam metode name, kita perlu menentukan string dengan karakter tambahan di awalan.

contoh web.php

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

Ercole Palmeri

Buletin inovasi
Jangan lewatkan berita terpenting tentang inovasi. Daftar untuk menerimanya melalui email.

Artikel Terbaru

Regulator antimonopoli Inggris meningkatkan kekhawatiran BigTech atas GenAI

CMA Inggris telah mengeluarkan peringatan tentang perilaku Big Tech di pasar kecerdasan buatan. Di sana…

April 18 2024

Casa Green: revolusi energi untuk masa depan berkelanjutan di Italia

Keputusan "Rumah Hijau", yang dirumuskan oleh Uni Eropa untuk meningkatkan efisiensi energi bangunan, telah mengakhiri proses legislatifnya dengan…

April 18 2024

E-niaga di Italia sebesar +27% menurut Laporan baru oleh Casaleggio Associati

Laporan tahunan Casaleggio Associati tentang E-niaga di Italia disajikan. Laporan berjudul “AI-Commerce: garis depan E-niaga dengan Kecerdasan Buatan”.…

April 17 2024

Ide Cemerlang: Bandalux menghadirkan Airpure®, tirai yang memurnikan udara

Hasil dari inovasi teknologi yang terus-menerus dan komitmen terhadap lingkungan dan kesejahteraan masyarakat. Bandalux mempersembahkan Airpure®, sebuah tenda…

April 12 2024