Bagaimana untuk mengesahkan parameter laluan dalam Laravel?

PHPz
Lepaskan: 2023-09-01 14:42:02
ke hadapan
818 orang telah melayarinya

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';
});
Salin selepas log masuk

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']);
Salin selepas log masuk

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

Pengesahan parameter penghalaan

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.

tatabahasa

Sintaks parameter penghalaan adalah seperti berikut −

Route::get('/user/{myid}', function ($myid) {
   //
});
Salin selepas log masuk

Di sini myid ialah parameter penghalaan yang ingin kami gunakan selanjutnya.

Parameter penghalaan berbilang

Anda boleh mempunyai berbilang parameter laluan seperti yang ditunjukkan dalam sintaks di bawah.

Route::get('/students/{post}/feedbacks/{feedback}', function ($postId, $feedbackId) {
   //
});
Salin selepas log masuk

Dalam kes di atas, terdapat dua parameter penghalaan: {post} dan {feedback}

Parameter pilihan

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;
});
Salin selepas log masuk

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 bagi

Contoh 1

ialah:

Contoh 1

Gunakan 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]+');
Salin selepas log masuk

Output

Outputnya ialah −

disha
Salin selepas log masuk

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.
Salin selepas log masuk

URL Tidak Sah -

http://localhost:8000/student/dishaSingh123
Salin selepas log masuk

Contoh 2

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]+']);
Salin selepas log masuk
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

Output di atas ialah −

12===disha
Salin selepas log masuk
Salin selepas log masuk

URL yang sah di atas ialah −

http://localhost:8000/student/12/disha
http://localhost:8000/student/01/disha
Salin selepas log masuk

URL Tidak Sah -

http://localhost:8000/student/01/DISHA
http://localhost:8000/student/abcd/disha
Salin selepas log masuk

Gunakan whereNumber()

Contoh

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]+');
Salin selepas log masuk

Output

Output kod di atas ialah −

12===disha
Salin selepas log masuk
Salin selepas log masuk

Gunakan whereAlpha()

Contoh

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');
Salin selepas log masuk

Output

Output kod di atas ialah −

12===dishaSingh
Salin selepas log masuk

Gunakan whereAlphaNumeric()

Contoh

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');
Salin selepas log masuk

Output

Outputnya ialah -

12===dishaSingh122
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan parameter laluan dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan