如果使用资源,我的路线会出现问题。我从 php 7.4/laravel 7 升级到 php 8.2/laravel 10。
升级后所有路由错误。 目标类控制器不存在
laravel 7 代码
Route::get('home', 'HomeController@home');
Route::post('save', 'HomeController@save');
Route::resource('admin', 'AdminController');
laravel 10 代码
Route::get('home', 'App\Http\Controllers\HomeController@home');
Route::post('save', 'App\Http\Controllers\HomeController@save');
Route::resource('/admin', 'App\Http\Controllers\AdminController');
所以我像上面一样改变了我的代码。现在 get 和 post 的路由已经可以了,但是对于资源仍然出现错误目标类 [] 不存在
我尝试使用这样的类进行更改
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AdminController;
Route::resource('/admin', AdminDocController::class);
路线服务提供商.php
class RouteServiceProvider extends ServiceProvider
{
/**
* The path to your application's "home" route.
*
* Typically, users are redirected here after authentication.
*
* @var string
*/
public const HOME = '/home';
protected $namespace = 'App\\Http\\Controllers';
/**
* Define your route model bindings, pattern filters, and other route configuration.
*/
public function boot(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php'));
});
}
}
根据您所显示的代码,您的路线应如下所示。
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\AdminController;
Route::get('home', [HomeController::class, 'home']);
Route::post('save', [HomeController::class, 'save']);
Route::resource('/admin', AdminController::class);