Я работаю с 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 обладает хорошей производительностью благодаря опкодированию.
Если вы хотите применить префикс пространства имен только к этой группе, вы можете установить этот префикс:
...
->namespace('App\Http\Controllers\Admin')
->prefix('admin')
...
Затем для маршрута в файле маршрутов admin.php
вы можете вызывать их так, как вы делали это раньше:
Route::resource('users', 'UsersController');