Illuminate\Contracts\Container\BindingResolutionException,目标类[MarketsouhaibController]不存在,Laravel 8

4sup72z8  于 2023-05-08  发布在  其他
关注(0)|答案(3)|浏览(236)

在我的laravel 8应用程序中出现以下错误:
Illuminate\Contracts\Container\BindingResolutionException。目标类[MarketsouhaibController]不存在。Laravel 8
显示以下stracktrace:

try {
  $reflector = new ReflectionClass($concrete);
} catch (ReflectionException $e) {
  throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
}

在教程视频,它的工作,但与我的laravel 8不工作。

sycxhyv7

sycxhyv71#

由于缺乏细节,我猜您正在使用原始的控制器路由语法Route::get('/', 'MarketsouhaibController@index'),我们都已经使用了很长时间的语法,这是一个常见的问题。这个语法一直工作到Laravel 7。8、他们改变了
Laravel 8引入了一个新的语法,这是新的标准。你现在有两个选择。您可以使用 String SyntaxPHP callable syntax,如下所示。

//string syntax
Route::get('/', 'App\Http\Controllers\MarketsouhaibController@index')
//php callable syntax
use App\Http\Controllers\MarketsouhaibController; //must be placed at the top of routes

Route::get('/', [MarketsouhaibController::class, 'index']);

但如果您仍然想使用原始的自动前缀控制器路由,只需按照以下步骤操作。
1.导航到您的RouteServiceProvider
1.添加protected $namespace = 'App\Http\Controllers';
个人建议,在开始之前请阅读文档。它们的存在是有原因的。我发布的解决方案也可以在Documentation provided by Laravel和他们发布的Upgrade Guide中使用。

n9vozmp4

n9vozmp42#

你可以仔细看看控制器和路由器中的命名空间,必须是相同的,这为我解决了

pobjuy32

pobjuy323#

运行这个:

composer dump-autoload

相关问题