【问题标题】:How to fix ‘Target class does not exist’?如何修复“目标类不存在”?
【发布时间】:2022-01-05 17:06:34
【问题描述】:

如何修复 Laravel 8 中的“目标类不存在” https://litvinjuan.medium.com/how-to-fix-target-class-does-not-exist-in-laravel-8-f9e28b79f8b4

我正在与 DNE 怪物战斗。它正在获胜。 我正在使用 ve 8 的东西。谷歌搜索把我带到了胡安的页面。他很好地解释了这个问题,我已经应用了所有三个修复程序,但我仍然得到 TCDNE。无赖。

  • 手动添加命名空间,以便您可以像在 Laravel 7.x 及之前的版本中一样使用它
  • 使用字符串语法时,在路由文件中使用完整的命名空间
  • 使用操作语法(推荐)
use App\Http\Controllers\EventController;
use App\Http\Controllers\FamilyController;
use App\Http\Controllers\HedgehogController;
use App\Http\Controllers\KeywordController;
use App\Http\Controllers\CommentController;
Route::get('/comments', [App\Http\Controllers\CommentController::class, 'index']);

我还能做些什么来解决这个问题吗?

【问题讨论】:

  • 请提供准确的错误信息
  • 目标类 [App\Http\MemorysController] 不存在
  • 这个类可能不存在,因为控制器应该在 App\Http\Controllers 命名空间中(但取决于你实际放置这个文件的位置)......你也没有在这里展示任何相关的东西到那个类(比如路由定义)
  • 你会跟进你自己的问题吗?

标签: laravel routes


【解决方案1】:

你已经导入了命名空间,所以直接像这样使用控制器

use App\Http\Controllers\CommentController;
Route::get('/comments', [CommentController::class, 'index']);

https://laravel.com/docs/8.x/routing#the-default-route-files

【讨论】:

  • 不错的推荐,但两种方式都在创建相同的字符串
  • 我正要说我试过有没有也试过了。
【解决方案2】:

在 RouteServiceProvider 中取消注释 protected $namespace = 'App\\Http\\Controllers';

在这里找到:

Defining a namespace for Laravel 8 routes

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2018-07-12
    • 2021-02-26
    • 2021-01-06
    • 2021-12-03
    • 1970-01-01
    • 2021-01-26
    • 2021-03-06
    • 2021-04-02
    相关资源
    最近更新 更多