Laravel 8: целевой класс не найден

Я работаю с Laravel 8 над своим проектом, и теперь я хотел создать маршрут для своего контроллера ресурсов с именем UsersController.

Итак, в моем файле маршрута я добавил этот маршрут:

Route::resource('users', UsersController::class);

И поскольку этот UsersController находится в каталоге Controllers/Admin, я добавил \Admin в пространство имен в RouteServiceProvider:

Route::middleware(['web' , 'auth' , 'auth.admin'])
                ->namespace($this->namespace . '\Admin')
                ->prefix('admin')
                ->group(base_path('routes/web/admin.php'));

Но теперь, когда я хочу перейти по ссылке /admin/users, я получаю это сообщение:

Illuminate\Contracts\Container\BindingResolutionException Целевой класс [Админ\усерсконтроллер] не существует.

Так что же я здесь сделал не так? Как исправить эту ошибку?

Как вы можете видеть на этом рисунке, контроллер правильно расположен по этому пути:

Я был бы очень признателен за любую идею от вас, ребята,

Спасибо...

🤔 А знаете ли вы, что...
PHP обладает хорошей производительностью благодаря опкодированию.


170
1

Ответ:

Решено

Если вы хотите применить префикс пространства имен только к этой группе, вы можете установить этот префикс:

...
->namespace('App\Http\Controllers\Admin')
->prefix('admin')
...

Затем для маршрута в файле маршрутов admin.php вы можете вызывать их так, как вы делали это раньше:

Route::resource('users', 'UsersController');