Laravel 8 版的路由系统改变了ServiceProvider
. 以前该属性$namespace
是这样声明的:
protected $namespace = 'App\Http\Controllers';
但是,在版本 8 中,该属性被声明为 null。
protected $namespace = null;
所以版本 8 中的路由必须以如下方式声明:
<?php
//Se debe llamar al controllador
use App\Http\Controllers\UserController;
//De esta manera puede ser usado al momento de declarar la ruta.
Route::get('/user', [UserController::class, 'index']);
如果你正在做一个新项目,你可能在适应版本 8 时看不到太大问题,但如果你想迁移一个有数百或数千个路由的系统,一个一个地更改所有路由可能不会成为可行的解决方案。
我可以在 Laravel 版本 8 上继续使用旧的路由系统吗?
答案是肯定的:
为此,您可以在文档中获得以下信息:
基本上,您必须对文件进行两项更改
app\Providers\RouteServiceProvider.php
:1. 像这样声明命名空间属性(这只不过是保持它在版本 7.x 中的样子):
2. 在 boot 方法中,您必须将声明的属性传递给
namespace
嵌套方法 almiddleware('web')
和middleweare('api')
:通过这种方式,您可以像在 7.x 版本中一样继续加载您的路线
字体: