Rumah  >  Artikel  >  rangka kerja php  >  Analisis ringkas sama ada setiap halaman dalam laravel perlu menentukan laluan

Analisis ringkas sama ada setiap halaman dalam laravel perlu menentukan laluan

PHPz
PHPzasal
2023-04-03 17:55:16681semak imbas

Dalam Laravel, penghalaan merujuk kepada mekanisme yang mengaitkan URL dengan kaedah dalam pengawal yang sepadan. Menggunakan penghalaan Laravel boleh mengurus URL aplikasi kami dengan mudah, mencapai kemesraan URL dan mencari pengawal dan kaedah dengan cepat dan fleksibel.

Jadi, untuk setiap halaman, adakah kita perlu menentukan laluan untuknya? Jawapannya sudah tentu tidak. Mari jelaskan secara terperinci di bawah.

Untuk aplikasi tapak web biasa, ia biasanya mengandungi banyak modul dan fungsi, dan setiap modul dan fungsi mempunyai halaman yang sepadan. Jika anda menentukan laluan untuk setiap halaman, ia akan menjadi sangat rumit dan berlebihan, dan akan membawa kepada terlalu banyak laluan, menjadikannya menyusahkan untuk diselenggara.

Jadi, kami perlu menggunakan beberapa teknik untuk memudahkan reka bentuk penghalaan kami:

Pertama, kami boleh menentukan beberapa peraturan penghalaan. Contohnya, jika semua halaman berkaitan artikel di tapak web kami bermula dengan "/article/", maka kami boleh menentukan peraturan penghalaan untuk halaman berkaitan ini melalui kod berikut:

Route::group(['prefix' => 'article'], function () {
    Route::get('/', 'ArticleController@index');
    Route::get('/detail/{id}', 'ArticleController@detail');
    Route::get('/edit/{id}', 'ArticleController@edit');
});

Melalui peraturan penghalaan tersebut , mengakses "/article/" sepadan dengan kaedah indeks dalam ArticleController, mengakses "/article/detail/{id}" sepadan dengan kaedah terperinci dalam ArticleController, mengakses "/article/edit/{id}" sepadan dengan kaedah edit dalam ArticleController .

Kedua, kami boleh menggunakan penghalaan sumber untuk mengurus penghalaan kami dengan lebih mudah. Dalam Laravel, penghalaan sumber ialah cara yang sangat mudah untuk menentukan jenis permintaan dan laluan yang sama untuk berbilang laluan berkaitan. Sebagai contoh, kita boleh mentakrifkan penghalaan sumber berkaitan artikel seperti berikut:

Route::resource('article', 'ArticleController');

Pada masa ini, kita boleh mengakses kaedah pengawal yang sepadan melalui pautan berikut:

  • DAPATKAN / artikel: Paparkan antara muka senarai artikel
  • GET /article/create: Paparkan antara muka create article
  • POST /article: Create a new article
  • GET /article /{id }: Paparkan antara muka butiran artikel yang ditentukan
  • GET /article/{id}/edit: Paparkan antara muka untuk mengubah suai artikel yang ditentukan
  • PUT/PATCH /article/{id}: Kemas kini Tentukan artikel
  • DELETE /article/{id}: Padamkan artikel yang dinyatakan

Akhir sekali, kami juga boleh menggunakan mekanisme penjanaan laluan automatik yang disediakan oleh Laravel untuk memudahkan reka bentuk laluan kami. Dalam Laravel, kita boleh menggunakan kod berikut untuk menjana laluan kumpulan untuk kaedah dalam pengawal:

Route::controller('article', 'ArticleController');

Kemudian, kita boleh mengakses kaedah pengawal yang sepadan melalui pautan berikut:

  • GET /article: Memaparkan antara muka senarai artikel, kaedah pengawal yang sepadan ialah getIndex()
  • GET /article/create: Memaparkan antara muka penciptaan artikel, kaedah pengawal yang sepadan ialah getCreate()
  • POST /article: Buat artikel baharu, kaedah pengawal yang sepadan ialah postIndex()
  • GET /article/{id}: Paparkan antara muka butiran artikel yang ditentukan, kaedah pengawal yang sepadan GetShow($id)
  • GET /article/{id}/edit: Memaparkan antara muka untuk mengubah suai artikel yang ditentukan Kaedah pengawal yang sepadan ialah getEdit($id)
  • PUT/PATCH / article/{id} : Kemas kini artikel yang ditentukan, kaedah pengawal yang sepadan ialah putIndex($id)
  • DELETE /article/{id}: Padamkan artikel yang ditentukan, kaedah pengawal yang sepadan ialah deleteIndex($id)

Melalui tiga kaedah di atas, kami boleh menguruskan laluan dengan agak mudah tanpa perlu menentukan laluan untuk setiap halaman. Sudah tentu, ini tidak bermakna bahawa semua halaman tidak memerlukan penghalaan Halaman yang perlu dipaparkan masih perlu diuruskan melalui penghalaan yang sepadan, tetapi kita boleh mengelakkan penghalaan daripada menjadi terlalu berlebihan dan menyusahkan melalui reka bentuk yang munasabah.

Atas ialah kandungan terperinci Analisis ringkas sama ada setiap halaman dalam laravel perlu menentukan laluan. 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