Route::get('new/:id', 'News/read')
->option([
'ext' => 'html',
'https' => true
]);
menyokong pemadanan berbilang akhiran, contohnya:
// 定义GET请求路由规则 并设置URL后缀为html的时候有效
Route::get('new/:id', 'News/read')
->ext('html');
Jika kaedah ext tidak melepasi sebarang nilai, ini bermakna tiada akses akhiran dibenarkan.
Anda boleh menetapkan akhiran URL yang dilarang daripada akses, contohnya:
Route::get('new/:id', 'News/read')
->ext('shtml|html');
Jika kaedah denyExt tidak melepasi sebarang nilai, ini bermakna akhiran mesti digunakan untuk akses.
Pengesanan nama domain
menyokong penggunaan nama domain atau nama subdomain yang lengkap untuk pengesanan, contohnya:
// 定义GET请求路由规则 并设置禁止URL后缀为png、jpg和gif的访问
Route::get('new/:id', 'News/read')
->denyExt('jpg|png|gif');
Jika anda perlu menentukan peraturan penghalaan kelompok untuk nama subdomain, adalah disyorkan untuk menggunakan kaedah domain untuk definisi penghalaan.
Pengesanan HTTPS
Menyokong pengesanan akses HTTPS semasa
// 完整域名检测 只在news.thinkphp.cn访问时路由有效
Route::get('new/:id', 'News/read')
->domain('news.thinkphp.cn');
// 子域名检测
Route::get('new/:id', 'News/read')
->domain('news');
Pengesanan AJAX/PJAX/JSON
Boleh mengesan sama ada permintaan semasa JSONX/PJAX
// 必须使用HTTPS访问
Route::get('new/:id', 'News/read')
->https();
Minta pengesanan pembolehubah
Selain memadankan alamat penghalaan, anda juga boleh menyemak sama ada pembolehubah permintaan sepadan Hanya apabila pembolehubah permintaan yang ditentukan juga konsisten, laluan boleh dipadankan.
// 必须是JSON请求访问
Route::get('new/:id', 'News/read')
->json();
Tambahkan parameter tambahan
Anda boleh menambahkan parameter tambahan secara tersirat apabila menentukan laluan Parameter ini tidak akan muncul dalam alamat URL.
// 检查type变量
Route::post('new/:id', 'News/save')
->filter('type', 1);
// 检查多个请求变量
Route::post('new/:id', 'News/save')
->filter([ 'type' => 1,'status'=> 1 ]);
Apabila permintaan penghalaan, dua parameter, app_id dan status, akan dihantar pada masa yang sama.
Model pengikatan laluan
Peraturan penghalaan dan data model pengikatan sokongan pengumpulan, contohnya:
Route::get('blog/:id', 'Blog/read')
->append(['app_id' => 1, 'status' => 1]);
akan mengikat data model Pengguna secara automatik dengan id nilai pembolehubah penghalaan semasa kepada laluan semasa.
Jika penjilidan model anda menggunakan id sebagai syarat pertanyaan, ia juga boleh dipermudahkan kepada kaedah berikut
Route::get('hello/:id', 'index/hello')
->model('id', '\app\index\model\User');
Secara lalai, jika data model tidak ditanya, pengecualian akan dilemparkan Jika anda tidak mahu membuang pengecualian , anda boleh menggunakan
Route::get('hello/:id', 'index/hello')
->model('\app\index\model\User');
untuk menentukan syarat pertanyaan bagi data model, contohnya:
Route::rule('hello/:id', 'index/hello')
->model('id', '\app\index\model\User', false);
menunjukkan bahawa id pertanyaan dan nilai nama adalah sama dengan data model pembolehubah penghalaan semasa.
Anda juga boleh menggunakan penutupan untuk menyesuaikan objek model yang diperlukan dikembalikan
Route::rule('hello/:name/:id', 'index/hello')
->model('id&name', '\app\index\model\User');
Parameter fungsi penutupan ialah maklumat pembolehubah URL permintaan semasa.
Model terikat boleh disuntik terus secara automatik dalam kaedah seni bina pengawal atau kaedah operasi Untuk butiran, sila rujuk suntikan kebergantungan dalam bab permintaan. . .
Route::rule('hello/:id', 'index/hello')
->model(function ($id) {
$model = new \app\index\model\User;
return $model->where('id', $id)->find();
});
Jika anda gunakan ditakrifkan dalam mod malar, dan parameter middleware boleh dihantar sebagai parameter kedua. Route::get('new/:name$', 'News/read')
->cache(3600);
Jika anda perlu mentakrifkan berbilang middleware, gunakan kaedah tatasusunan Route::rule('hello/:name','hello')
->middleware('Auth');
untuk memasukkan parameter tambahan yang sama Route::group('hello', function(){
Route::rule('hello/:name','hello');
})->middleware('Auth');
atau nyatakan parameter middleware secara individu.
Route::rule('hello/:name','hello')
->middleware('Auth:admin');
Parameter dinamik
Jika anda perlu menyesuaikan beberapa parameter penghalaan tambahan, anda boleh menggunakan kaedah berikut:
Route::rule('hello/:name','hello')
->middleware(Auth::class, 'admin');
atau gunakan kaedah dinamik Route::rule('hello/:name','hello')
->middleware([Auth::class, 'Check']);
Anda boleh memanggil parameter peraturan laluan seterusnya Semakan kebenaran.