laravel 10-php 8.2 上的路由资源问题

问题描述 投票:0回答:1

如果使用资源,我的路线会出现问题。我从 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'));
        });
    }
}
routes resources laravel-10 php-8.2
1个回答
0
投票

根据您所显示的代码,您的路线应如下所示。

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);
© www.soinside.com 2019 - 2024. All rights reserved.