Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengesahkan parameter laluan dalam Laravel?
Dalam Laravel, laluan ditakrifkan dalam laluan/ folder. Laluan ditentukan dalam fail web.php. Fail ini dibuat selepas pemasangan laravel selesai. Penghalaan Laravel menerima URI dan fungsi penutupan seperti yang ditunjukkan di bawah -
use Illuminate\Support\Facades\Route; Route::get('/student', function () { return 'Hello Student'; });
Laluan yang ditakrifkan dalam web/routes.php diberikan kepada kumpulan perisian tengah web, dan mereka Mempunyai keadaan sesi dan perlindungan CSRF. Anda juga boleh memanggil pengawal dalam laluan Seperti yang ditunjukkan di bawah -
use Illuminate\Support\Facades\Route; use App\Http\Controllers\StudentController; Route::get('student', [StudentController::class, 'index']);
Berikut ialah kaedah penghalaan yang boleh anda gunakan dalam aplikasi anda:
Route::get($ uri, $fungsi panggilan balik atau pengawal);
Route::post($uri, $fungsi panggilan balik atau pengawal);
Route::put($uri, $fungsi panggilan balik atau pengawal);
Route::patch($uri, $fungsi panggilan balik atau pengawal);
Route::delete($uri, $fungsi panggilan balik atau pengawal);
Route::options($uri, $fungsi panggilan balik atau pengawal);
Parameter laluan disertakan dalam pendakap kerinting dan nama yang diberikan mengandungi aksara abjad angka. Selain aksara abjad angka, anda juga boleh menggunakan garis bawah apabila memilih nama parameter penghalaan.
Sintaks parameter penghalaan adalah seperti berikut −
Route::get('/user/{myid}', function ($myid) { // });
Di sini myid ialah parameter penghalaan yang ingin kami gunakan selanjutnya.
Anda boleh mempunyai berbilang parameter laluan seperti yang ditunjukkan dalam sintaks di bawah.
Route::get('/students/{post}/feedbacks/{feedback}', function ($postId, $feedbackId) { // });
Dalam kes di atas, terdapat dua parameter penghalaan: {post} dan {feedback}
Anda juga boleh menambah parameter pilihan pada laluan. Parameter pilihan tidak selalu tersedia dan ditunjukkan oleh ? Sintaks parameter pilihan adalah seperti berikut −
Route::get('/students/{myname?}', function ($myname = null) { return $myname; });
Di sini nama saya ialah parameter pilihan.
Laravel mempunyai beberapa kaedah untuk membantu mengesahkan parameter. Mereka adalah di mana(), whereNumber(), whereAlpha() dan whereAlphaNumeric().
Terjemahan bahasa Cina bagiGunakan kaedah dimana()
where()Kaedah ditakrifkan pada laluan dan ia akan menerima nama parameter dan pengesahan digunakan pada parameter. Jika terdapat berbilang parameter, ia akan diterima sebagai tatasusunan, di mana kunci adalah nama parameter dan nilai adalah peraturan pengesahan yang akan digunakan pada kunci.
Route::get('/student/{studentname}', function ($studentname) { return $studentname; })->where('studentname', '[A-Za-z]+');
Outputnya ialah −
disha
Dalam kes di atas, nama pelajar mesti mengandungi A-Z atau a-z atau campuran kedua-duanya. Jadi berikut ialah URL yang sah -
http://localhost:8000/student/DISHA http://localhost:8000/student/dishaSingh.
URL Tidak Sah -
http://localhost:8000/student/dishaSingh123
Sekarang mari kita semak berbilang parameter menggunakan kaedah where().
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname){ return $studentid."===".$studentname; })->where(['studentid' => '[0-9]+', 'studentname' => '[a-z]+']);Dalam kes di atas, parameter penghalaan ialah studentid dan studentname. studentid diperlukan ialah nombor antara 0-9 dan nama pelajar mestilah dalam huruf kecil. Kandungan yang perlu diterjemahkan ialah: ia mestilah nombor antara 0-9 dan nama pelajar mestilah huruf kecil
Output di atas ialah −
12===disha
URL yang sah di atas ialah −
http://localhost:8000/student/12/disha http://localhost:8000/student/01/disha
URL Tidak Sah -
http://localhost:8000/student/01/DISHA http://localhost:8000/student/abcd/disha
Anda perlu lulus parameter laluan yang anda mahu mempunyai nilai yang sah sahaja -
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->where('studentname','[a-z]+');
Output kod di atas ialah −
12===disha
Anda perlu melepasi parameter laluan yang anda mahu mempunyai nilai alfa -
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->whereAlpha('studentname');
Output kod di atas ialah −
12===dishaSingh
Anda perlu melepasi parameter laluan yang anda ingin mempunyai nilai alfanumerik−
Route::get('/student/{studentid}/{studentname}', function ($studentid, $studentname) { return $studentid."===".$studentname; })->whereNumber('studentid')->whereAlphaNumeric ('studentname');
Outputnya ialah -
12===dishaSingh122
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan parameter laluan dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!