Rumah  >  Artikel  >  rangka kerja php  >  Penjelasan kod terperinci tentang penghalaan dalam Laravel

Penjelasan kod terperinci tentang penghalaan dalam Laravel

PHPz
PHPzasal
2023-04-11 15:06:05887semak imbas

Laravel ialah rangka kerja PHP yang popular Selepas bertahun-tahun pembangunan, ia telah menjadi salah satu rangka kerja pilihan untuk pembangun PHP. Ia mempunyai fungsi penghalaan yang sangat berkuasa. Artikel ini akan memperkenalkan cara menulis laluan dalam Laravel.

Dalam Laravel, semua laluan ditakrifkan dalam routes/web.php fail. Laluan yang ditakrifkan dalam fail ini adalah laluan utama untuk aplikasi web.

Penghalaan Laravel terbahagi kepada dua kaedah: penghalaan GET dan POST. Laluan GET digunakan untuk mendapatkan data, dan laluan POST digunakan untuk menghantar data ke pelayan. Berikut menerangkan cara untuk menentukan laluan GET dan POST dalam Laravel.

Kaedah definisi laluan GET

Dalam fail routes/web.php, gunakan kod berikut untuk mentakrifkan laluan GET:

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

Kod di atas mentakrifkan laluan yang apabila pengguna mengakses Apabila laluan akar projek digunakan, laluan ini akan mengembalikan paparan welcome. Dalam contoh ini, / mewakili laluan akar projek dan function () {} ialah fungsi tanpa nama yang akan dilaksanakan apabila laluan itu diakses.

Anda juga boleh menentukan kaedah dalam Pengawal:

Route::get('/users', 'UserController@index');

Kod di atas mentakrifkan laluan users Apabila pengguna mengakses laluan, Laravel akan memanggil kaedah UserController masuk pengawal. indexKaedah. Kaedah dalam Pengawal boleh melakukan operasi yang lebih kompleks, seperti mendapatkan semula data daripada pangkalan data dan memaparkannya dalam paparan.

Bagaimana untuk menentukan laluan POST

Dalam fail routes/web.php, gunakan kod berikut untuk mentakrifkan laluan POST:

Route::post('/users', function (Request $request) {
    $name = $request->input('name');
    $email = $request->input('email');
    // 保存到数据库中
    return view('users');
});

Kod di atas mentakrifkan users laluan, Apabila pengguna menghantar permintaan POST ke laluan ini, Laravel akan melaksanakan fungsi tanpa nama yang ditentukan. Fungsi ini menggunakan contoh kelas Request untuk menerima data dalam permintaan POST dan kemudian menyimpan data ke pangkalan data.

Selain GET dan POST, terdapat kaedah permintaan HTTP lain, seperti PUT, DELETE, dll. Laravel menyokong semua kaedah permintaan HTTP. Berikut ialah contoh menggunakan permintaan PUT:

Route::put('/users/{id}', function ($id) {
    // 根据ID更新用户
});

Kod di atas mentakrifkan laluan users Apabila pengguna mengakses laluan ini menggunakan kaedah permintaan PUT, Laravel akan melaksanakan fungsi tanpa nama yang ditentukan. Fungsi ini menerima parameter $id, yang menunjukkan bahawa ID pengguna akan dikemas kini.

Dalam Laravel, penghalaan juga menyokong parameter dan kumpulan laluan. Berikut ialah contoh penggunaan parameter dan kumpulan laluan:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/dashboard', 'DashboardController@show');
    Route::get('/users/{id}', 'UserController@show');
});

Kod di atas mentakrifkan laluan dashboard dan laluan users, kedua-dua laluan dilindungi oleh perisian tengah auth. Kaedah DashboardController@show akan memaparkan paparan papan pemuka, dan kaedah UserController@show akan memaparkan profil pengguna berdasarkan parameter $id yang diluluskan.

Kesimpulan

Fungsi penghalaan Laravel sangat berkuasa, ia boleh mentakrifkan semua jenis laluan dengan mudah dan menyediakan banyak fungsi yang mudah, seperti parameter penghalaan, kumpulan laluan, perisian tengah, dsb. Apabila anda mula menggunakan Laravel, pastikan anda memahami pengetahuan penghalaan ini untuk menggunakan rangka kerja PHP yang berkuasa ini dengan lebih baik.

Atas ialah kandungan terperinci Penjelasan kod terperinci tentang penghalaan dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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