【问题标题】:laravel 8 Illuminate\Contracts\Container\BindingResolutionException. Target class [Admin\DashboardController] does not existlaravel 8 Illuminate\Contracts\Container\BindingResolutionException。目标类 [Admin\DashboardController] 不存在
【发布时间】:2021-09-15 16:55:54
【问题描述】:

我还是 laravel 8 的新手,我有一个问题,说目标类不存在。我相信它与某种路线有关(?)我不确定。我只遵循教程,但这是我得到的错误。这是我写的,

web.php:

<?php

use Illuminate\Support\Facades\Route;


Route::get('/', function () {
    return view('welcome');
});



Auth::routes();

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');

Route::group(['middleware' => ['auth', 'admin']], function () {

    Route::get('/dashboard', function () {
        return view('admin.dashboard');
    });
    
    Route::get('/role-register','Admin\DashboardController@registered');
});

【问题讨论】:

标签: php laravel laravel-8


【解决方案1】:

使用正确的命名空间,即

'namespace'=>'App\Http\Controllers\Admin' instead of 'namespace'=>'Admin'.

【讨论】:

    【解决方案2】:

    尝试使用以下内容。

    Route::get('/role-register', 
        [App\Http\Controllers\Admin\DashboardController::class, 'registered']);
    

    代替:

    Route::get('/role-register', 'Admin\DashboardController@registered');
    

    【讨论】:

      【解决方案3】:
      1. 确保类App\Http\Controllers\Admin\DashboardController 存在于正确的位置,并且文件顶部具有正确的命名空间。这应该在 app/Http/Controllers/Admin/ 中,命名空间为 App\Http\Controllers\Admin
      2. 为了保持一致性,在引用控制器方法时使用[App\Http\Controllers\Admin\DashboardController::class, 'registered'] 而不是'Admin\DashboardController@registered'。您可能也想为这条路线命名。

      【讨论】:

      • 试过了,效果很好。显然 laravel 8 不识别旧方式,但是通过使用它,它可以正常运行。谢谢你:)
      猜你喜欢
      • 1970-01-01
      • 2021-08-17
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 2021-07-13
      • 2021-09-04
      相关资源
      最近更新 更多