📜  Laravel 路由 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:16.419000             🧑  作者: Mango

Laravel 路由

在 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 路由功能非常强大,可以满足应用程序的大部分路由需求。详情请参考官方文档。