Laravel 5.2转8.83.25:route.php路由适配web.php问题咨询
Laravel 5.2 路由适配 Laravel 8.83.25 方案
核心变化说明
Laravel 8 对路由规则做了两个关键调整:
routes/web.php内的所有路由默认已自动应用web中间件组(包含会话、CSRF 保护等能力),无需手动用Route::group(['middleware' => 'web'])包裹- 不再默认引入控制器命名空间,需显式指定控制器类,同时隐式控制器路由的写法有更新
适配后的两种写法
写法一:隐式控制器(完全匹配原教程逻辑)
先在 web.php 顶部引入控制器:
use App\Http\Controllers\CategoryController;
然后用 Route::controller() 定义隐式路由,对应原教程中访问 GET /category 调用控制器 index 方法的逻辑:
Route::controller(CategoryController::class)->group(function () { Route::get('category', 'index'); });
写法二:直接指定控制器方法(更直观)
同样先引入控制器,然后直接绑定路由到具体方法:
use App\Http\Controllers\CategoryController; Route::get('category', [CategoryController::class, 'index']);
补充:确保控制器存在对应方法
你的 CategoryController.php 需要包含 index 方法,否则会触发报错:
<?php namespace App\Http\Controllers; class CategoryController extends Controller { public function index() { // 这里编写你的业务逻辑,比如返回分类列表视图 return view('categories.index'); } }
内容的提问来源于stack exchange,提问作者Rodrigo Lopez
相关产品推荐
相关产品推荐

