teknologi paket penghalaan
. parameter khusus Sila rujuk bab parameter penghalaan. Jika ia hanya digunakan untuk menetapkan beberapa parameter penghalaan biasa (juga dipanggil kumpulan maya) untuk beberapa peraturan penghalaan, anda juga boleh menggunakan:
Route::group('blog', function () { Route::rule(':id', 'blog/read'); Route::rule(':name', 'blog/read'); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']);
Kumpulan penghalaan menyokong bersarang, contohnya:
Route::group(function () { Route::rule('blog/:id', 'blog/read'); Route::rule('blog/:name', 'blog/read'); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']);
Jika kumpulan bersarang digunakan Dalam ini kes, kumpulan anak akan mewarisi parameter dan peraturan pembolehubah kumpulan induk, dan parameter serta peraturan pembolehubah yang ditakrifkan dalam peraturan penghalaan akhir akan diutamakan. Anda boleh menggunakan kaedah awalan untuk memudahkan takrifan alamat laluan yang sama Contohnya, takrifan berikut
Route::group(function () { Route::group('blog', function () { Route::rule(':id', 'blog/read'); Route::rule(':name', 'blog/read'); }); })->ext('html')->pattern(['id' => '\d+', 'name' => '\w+']);
boleh dipermudahkan kepada
Route::group('blog', function () { Route::get(':id', 'blog/read'); Route::post(':id', 'blog/update'); Route::delete(':id', 'blog/delete'); })->ext('html')->pattern(['id' => '\d+']);Laluan padanan tepatJika anda mahu semua laluan di bawah kumpulan. untuk menggunakan padanan tepat, anda boleh menggunakan
Route::group('blog', function () { Route::get(':id', 'read'); Route::post(':id', 'update'); Route::delete(':id', 'delete'); })->prefix('blog/')->ext('html')->pattern(['id' => '\d+']);Penyelesaian laluan tertunda
menyokong resolusi laluan tertunda, yang bermaksud bahawa peraturan penghalaan yang anda tentukan (terutamanya penghalaan kumpulan dan peraturan penghalaan nama domain) sebenarnya tidak didaftarkan semasa memuatkan fail definisi penghalaan, tetapi dipadankan Hanya apabila kumpulan penghalaan atau nama domain dicapai, pendaftaran dan resolusi akan dilakukan sebenarnya, yang meningkatkan prestasi pendaftaran dan resolusi penghalaan.
Penghuraian laluan tertunda dimatikan secara lalai Anda boleh menetapkannya dalam fail konfigurasi penghalaan:
Route::group('blog', function () { Route::get(':id', 'read'); Route::post(':id', 'update'); Route::delete(':id', 'delete'); })->completeMatch()->prefix('blog/')->ext('html')->pattern(['id' => '\d+']);
Selepas menghidupkan penghuraian laluan tertunda, jika anda perlu menjana URL penyahsulitan laluan, anda perlu menggunakan arahan baris arahan
// 开启路由延迟解析 'url_lazy_route' => true,untuk menjana penghuraian cache laluan.
Menentukan laluan melalui kumpulan penghalaan atau penghalaan nama domain boleh mengambil kesempatan daripada penyelesaian tertunda.
Setelah resolusi penghalaan yang tertunda dihidupkan, laluan nama domain dan laluan kumpulan yang ditentukan akan ditangguhkan dan diselesaikan, maksudnya, peraturan penghalaan hanya akan didaftarkan selepas nama domain atau kumpulan sebenarnya dipadankan untuk mengelakkan pendaftaran yang tidak perlu. dan resolusi.
Peraturan penghalaan di bawah kumpulan penghalaan yang sama menyokong penghuraian gabungan tanpa melintasi semua peraturan penghalaan di bawah kumpulan penghalaan, yang boleh meningkatkan prestasi penghuraian laluan.
Penggunaan secara berasingan menghidupkan penghuraian peraturan gabungan untuk kumpulan tertentu adalah seperti berikut:
php think optimize:route
Dengan cara ini, semua peraturan penghalaan di bawah kumpulan hanya perlu dipadankan dan disemak sekali tidak kira berapa banyak yang ditentukan (sebenarnya hanya yang sepadan dengan jenis permintaan semasa akan digabungkan dan diperiksa) peraturan penghalaan).
Kaedah mergeRuleRegex hanya boleh digunakan untuk penghalaan kumpulan atau penghalaan nama domain (perutean nama domain sebenarnya adalah kumpulan khas).
Atau sediakan peraturan penggabungan global dalam fail konfigurasi penghalaan (sah untuk semua kumpulan)Route::group('user', function () {
Route::rule('hello/:name','hello');
Route::rule('think/:name','think');
})->mergeRuleRegex();
rreee
penghalaan disatukan Parameter group_id ditambah, dan nilai parameter ini boleh diperolehi melalui kaedah param kelas Permintaan.