Laravel ialah rangka kerja PHP popular yang menyediakan sistem penghalaan yang mudah digunakan. Sistem penghalaan Laravel membolehkan anda menentukan kaedah untuk permintaan URI dan HTTP yang berbeza. Dalam artikel ini, kami akan mendalami pelaksanaan penghalaan dalam Laravel.
Takrifan penghalaan asas Laravel sangat mudah. Kita boleh menggunakan kaedah get, post, put, delete dan kaedah lain dari kelas Route untuk menentukan laluan.
Sebagai contoh, kita boleh mentakrifkan laluan GET asas:
Route::get('/hello', function () { return 'Hello, Laravel!'; });
Laluan di atas mentakrifkan laluan permintaan GET dengan URI /hello, mengembalikan rentetan "Hello, Laravel!".
Dalam aplikasi sebenar, laluan mungkin mempunyai parameter. Sistem penghalaan Laravel membolehkan anda menentukan parameter ini. Anda boleh menentukan parameter dalam laluan menggunakan sintaks {param}, dengan param ialah nama parameter.
Sebagai contoh, kita boleh menentukan laluan yang menerima parameter:
Route::get('/user/{id}', function ($id) { return 'User ID: ' . $id; });
Laluan di atas mentakrifkan laluan permintaan GET yang menerima parameter id. Dalam fungsi panggil balik, kita boleh menggunakan pembolehubah $id untuk mendapatkan parameter yang diluluskan dan mengembalikannya ke penyemak imbas.
Sistem penghalaan Laravel membolehkan anda mentakrifkan parameter penghalaan pilihan. Cuma tambah ? selepas nama parameter untuk menandakan parameter sebagai pilihan.
Sebagai contoh, kita boleh menentukan laluan dengan parameter pilihan:
Route::get('/user/{id}/{name?}', function ($id, $name = null) { if ($name) { return 'User ID: ' . $id . ', Name: ' . $name; } else { return 'User ID: ' . $id; } });
Laluan di atas mentakrifkan laluan permintaan GET yang menerima id dan parameter nama pilihan. Dalam fungsi panggil balik, kami menyemak sama ada $name wujud. Jika ia wujud, kami kembalikan id dan nama bersama-sama. Jika tidak, hanya parameter id dikembalikan.
Kadangkala anda mungkin perlu menggunakan kekangan regex pada parameter laluan untuk memastikan ia mematuhi peraturan tertentu. Dalam Laravel anda boleh menggunakan ungkapan biasa untuk melakukan ini.
Sebagai contoh, kita boleh mentakrifkan laluan dengan kekangan ungkapan biasa:
Route::get('/user/{id}/{name}', function ($id, $name) { return 'User ID: ' . $id . ', Name: ' . $name; })->where(['id' => '[0-9]+', 'name' => '[a-zA-Z]+']);
Laluan di atas mentakrifkan laluan permintaan GET dengan parameter id dan nama. Dalam fungsi panggil balik, kami mengembalikan kedua-dua parameter ini bersama-sama. Apabila mentakrifkan laluan, kami menggunakan kaedah where untuk menentukan bahawa parameter id mesti sepadan dengan [0-9]+ungkapan biasa dan parameter nama mesti sepadan dengan [a-zA-Z]+ungkapan biasa.
Dalam Laravel anda boleh mentakrifkan nama untuk laluan, yang memudahkannya semasa mentakrifkan URL.
Sebagai contoh, kita boleh mentakrifkan laluan bernama:
Route::get('/user/profile', function () { return 'User Profile'; })->name('profile');
Laluan di atas mentakrifkan laluan permintaan GET dan menamakannya sebagai profil. Apabila menentukan laluan, kami menentukan nama menggunakan kaedah nama. Sekarang, kita boleh menggunakan nama ini dalam kod untuk menjana URL.
Penjana URL Laravel membolehkan anda menjana URL aplikasi anda dengan mudah. Anda boleh menggunakan fungsi laluan untuk menjana URL laluan.
Sebagai contoh, kita boleh menggunakan laluan yang dinamakan di atas untuk menjana URL:
$url = route('profile');
Kod di atas akan menjana URL yang menghala ke /profile.
Dalam Laravel, anda juga boleh menunjukkan laluan kepada kaedah pengawal dan bukannya menentukan fungsi panggil balik penutupan secara langsung. Dengan cara ini anda boleh mengendalikan permintaan secara berpusat dalam pengawal anda.
Sebagai contoh, kita boleh mentakrifkan laluan pengawal:
Route::get('/user/{id}', 'UserController@show');
Laluan di atas mentakrifkan laluan permintaan GET yang menghalakan parameter /id kepada kaedah tunjukkan pengawal UserController.
Penghalaan RESTful membolehkan anda menentukan titik akhir API RESTful untuk aplikasi anda. Dalam Laravel, anda boleh menentukan laluan RESTful menggunakan kaedah sumber kelas Laluan.
Sebagai contoh, kami boleh mentakrifkan laluan RESTful:
Route::resource('photos', 'PhotoController');
Kod di atas akan memberikan kami laluan RESTful lalai, termasuk indeks, cipta, simpan, tunjukkan, edit, kemas kini dan musnahkan kaedah . Kaedah ini akan digunakan untuk mengendalikan permintaan dalam pengawal PhotoController.
Ringkasan
Artikel ini merangkumi asas penghalaan Laravel. Kami mempelajari tentang penghalaan asas, parameter penghalaan, parameter pilihan, kekangan ungkapan biasa, penghalaan bernama, penjana URL, penghalaan pengawal dan penghalaan RESTful. Sistem penghalaan Laravel sangat berkuasa dan mengendalikan pelbagai permintaan dengan mudah.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penghalaan laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!