Illuminate\Contracts\Container\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。拉拉
Posted
技术标签:
【中文标题】Illuminate\\Contracts\\Container\\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。拉拉维尔 8【英文标题】:Illuminate\Contracts\Container\BindingResolutionException .Target class [MarketsouhaibController] does not exist. laravel 8Illuminate\Contracts\Container\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。拉拉维尔 8 【发布时间】:2021-07-13 14:24:02 【问题描述】:我的 laravel 8 应用程序出现以下错误:
Illuminate\Contracts\Container\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。 laravel 8
显示以下轨迹:
try
$reflector = new ReflectionClass($concrete);
catch (ReflectionException $e)
throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
在教程视频中它可以工作,但我的 laravel 8 不能工作....
【问题讨论】:
这能回答你的问题吗? Target class does not exist. problem in laravel 8 你能添加你的 api.php/web.php 文件吗? 这能回答你的问题吗? Target class controller does not exist - Laravel 8 【参考方案1】:由于缺乏细节,我猜您使用的是原始控制器路由语法Route::get('/', 'MarketsouhaibController@index')
,我们都使用了很长时间的语法,这是一个常见问题。这种语法一直有效到 Laravel 7。从 8 开始,他们改变了它。
从 Laravel 8 开始,引入了一种新语法,并且是新标准。你现在有两个选择。您可以使用 String 语法 或 PHP 可调用语法,如下所示。
//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']);
但如果您仍想使用原始的自动前缀控制器路由,只需按照以下步骤操作即可。
-
导航到您的
RouteServiceProvider
添加protected $namespace = 'App\Http\Controllers';
个人建议,在开始之前请阅读文档。那里是有原因的。我发布的解决方案也可以在他们发布的Documentation provided by Laravel 和Upgrade Guide 中找到。
【讨论】:
这对我的问题进行了排序。非常感谢【参考方案2】:运行这个:
composer dump-autoload
【讨论】:
请简要描述您的答案如何解决问题。谢谢!以上是关于Illuminate\Contracts\Container\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。拉拉的主要内容,如果未能解决你的问题,请参考以下文章