📅  最后修改于: 2023-12-03 15:17:16.419000             🧑  作者: Mango
在 Laravel 中,路由决定了 HTTP 请求如何响应。
通过Route
门面类的静态方法可以定义路由。例如:
Route::get('/', function () {
return 'Hello, World!';
});
以上代码定义了一个响应 GET
请求,并返回 Hello, World!
的路由。
可以通过 Route::post()
、Route::put()
、Route::delete()
等静态方法定义相应的路由。
在路由中可以定义参数,用于接收 HTTP 请求中的参数。例如:
Route::get('user/{id}', function ($id) {
return 'User '.$id;
});
以上路由可以接收一个参数 id
,并返回 User
$id`。
也可以同时定义多个参数:
Route::get('users/{userId}/comments/{commentId}', function ($userId, $commentId) {
return 'User '.$userId.' has a comment of '.$commentId;
});
Laravel 允许在路由中定义中间件,以执行某些中间操作,例如身份验证,记录请求日志等。
可以通过middleware
方法定义中间件:
Route::get('admin/profile', function () {
//
})->middleware('auth');
可以使用数组定义多个中间件:
Route::get('admin/profile', function () {
//
})->middleware(['auth', 'role:admin']);
在 Laravel 中可以给路由定义一个名字,从而方便在应用程序中引用这个路由。可以使用 name
方法为路由命名:
Route::get('user/{id}', function ($id) {
//
})->name('user.profile');
路由组是把多个路由组合在一起的机制,可以方便地应用中间件、命名路由等。可以使用 Route::group
定义路由组:
Route::prefix('admin')->group(function () {
Route::get('dashboard', function () {
// admin dashboard
})->name('admin.dashboard');
});
Laravel 提供了路由缓存机制,把路由缓存到一个文件中,可以提高路由注册的速度,特别是扩展应用程序时非常有用。
可以使用 php artisan route:cache
命令缓存路由,使用 php artisan route:clear
命令清除路由缓存。当然,在更改路由或中间件时必须清除路由缓存。
以上介绍了 Laravel 路由的基础用法、路由参数、中间件、命名路由、路由组和路由缓存。Laravel 路由功能非常强大,可以满足应用程序的大部分路由需求。详情请参考官方文档。