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');
});
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.
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.php
` o `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.
Mari lihat bagaimana anda boleh mencipta laluan anda sendiri dalam Laravel.
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.
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.
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.
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.
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
.
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
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";
});
});
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
Sektor tentera laut adalah kuasa ekonomi global yang sebenar, yang telah menavigasi ke arah pasaran 150 bilion...
Isnin lalu, Financial Times mengumumkan perjanjian dengan OpenAI. FT melesenkan kewartawanannya bertaraf dunia…
Berjuta-juta orang membayar untuk perkhidmatan penstriman, membayar yuran langganan bulanan. Adalah menjadi pendapat umum bahawa anda…
Coveware oleh Veeam akan terus menyediakan perkhidmatan tindak balas insiden pemerasan siber. Coveware akan menawarkan keupayaan forensik dan pemulihan…