【问题标题】:Laravel 8: Target Class Does Not FoundLaravel 8:找不到目标类
【发布时间】:2021-03-31 20:59:24
【问题描述】:

我正在使用 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 url 时,我收到了这条消息:

Illuminate\Contracts\Container\BindingResolutionException 目标类 [Admin\UsersController] 不存在。

那么我在这里做错了什么?如何解决此错误?

正如您在这张图片中看到的,控制器正确放置在该路径:

非常感谢你们的任何想法,

谢谢...

【问题讨论】:

  • 你想要所有的路由定义都有一个命名空间前缀,就像 Laravel 8 之前的样子吗?
  • @lagbox 实际上我有两个名为home.phpadmin.php 的自定义路由文件。而这个admin.php 持有项目管理面板的路由。

标签: php laravel routes laravel-8


【解决方案1】:

如果您只想将命名空间前缀应用于该组,您可以设置该前缀:

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

然后对于 admin.php 路由文件中的路由,您可以像以前一样调用它们:

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

【讨论】:

猜你喜欢
  • 2021-04-09
  • 2021-01-18
  • 2021-04-27
  • 2021-01-26
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2021-06-05
相关资源
最近更新 更多