不积跬步无以至千里,不积小流无以成江海

 Administrator     2022-06-30      laravel 技术流      3431

laravel8.*以上版本,以前的路由写法报错原因及解决方案。

laravel9.*版本。

在以前的 Laravel 版本中,RouteServiceProvider包含一个$namespace属性。这个属性的值将自动添加到控制器路由定义和调用action帮助器/URL::action方法的前缀。在 Laravel 8.x 中,这个属性是null默认的。这意味着没有自动命名空间前缀将由 Laravel 完成。

具体看这https://laravel.com/docs/8.x/releases#laravel-8

解决方案:

use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']);
// or
Route::get('/users', 'App\Http\Controllers\UserController@index');

或者以前方式

在这个文件里App\Providers\RouteServiceProvider:
public function boot()
{
    ...

    Route::prefix('api')
        ->middleware('api')
        ->namespace('App\Http\Controllers') // <---------
        ->group(base_path('routes/api.php'));

    ...
}

参考链接:https://qa.1r1g.com/sf/ask/4466555131/