在laravel5中路由直接是在web.php中写的 但是在laravel8以后版本中 路由写法有所不同
访问报错如下:
laravel8.com/indexs
在这里记录下
G:\phpstudy_pro\WWW\laravel8\vendor\laravel\framework\src\Illuminate\Foundation\Support\Providers\RouteServiceProvider.php
①修改RouteServiceProvider.php文件 具体位置在上面
在24行这里增加$namespace的目录地址
protected $namespace = "App\Http\Controllers";
在boot方法中增加
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::prefix('api')
->middleware('api')
->group(base_path('routes/api.php'));
});
}
以上这段代码写上后我们就可以正常的在web.php中写路由地址了
②按照官方文档
在routes/web.php
首先在该文件中要引入控制器文件 注意:地址不要写错了
use App\Http\Controllers\TestController;
路由的写法和之前有所不同
Route::get('/user', [UserController::class, 'index']);
这种写法是官方推荐的,但是路由文件会引入许多的类,看上去没有之前简洁了。既然之前的写法简单,为什么在laravel8版本中反而复杂了
注意一点的是RouteServiceProvider.php这个文件中一定要写
protected $namespace; 否则会报错 你也找不到
第二种方式不建议使用,因为在web.php中我们会引入很多的类造成不必要的麻烦
感觉对你有帮助,麻烦您喜欢加关注,互相学习,互相加油!!!