【问题标题】:How to add resource in web.php laravel 7?如何在 web.php laravel 7 中添加资源?
【发布时间】:2021-06-08 13:01:20
【问题描述】:

我对 Laravel 7.x 中的 Route::resource() 方法有疑问。它返回的错误是:

目标类 [App\Http\Controllers\Admin\App\Http\Controllers\Admin\UserController] 不存在。

这是我在 routes/web.php 中的代码:

Route::get('/home', 'HomeController@index')->name('home');
Route::namespace('Admin')->prefix('admin')->middleware('auth')->group(function () {
    Route::get('/', [App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('dashboard');
    Route::resource('/users', App\Http\Controllers\Admin\UserController::class);
});

我找不到问题出在哪里。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    在 Laravel 7 中,控制器的命名空间已经在 RouteServiceProvider 中设置。因此,当您再次使用 Route::resource('/users', App\Http\Controllers\Admin\UserController::class); 为控制器使用完整命名空间时,您实际上是在说要在不存在的 App\Http\Controllers\Admin\App\Http\Controllers\Admin 文件夹中查找您的控制器,因此会出现错误。这与资源路由无关。 只需使用

    Route::resource('user', 'UserController');
    

    使用user 作为单数形式来维护标准命名约定

    【讨论】:

    • 我再次看到这个错误`目标类 [App\Http\Controllers\Admin\UserController::class] 不存在。 `
    • 为什么在新版本的karavel中使用这个代码Route::resource('user', 'UserController');
    • 抱歉,没有收到您的问题。新版本,你的意思是 laravel 8?
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 2020-06-30
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多