我有两个ArticleController
,其中一个放在控制器内的Admin
目录下:
use App\Http\Controllers\Admin\ArticleController as ArticleADMController;
use App\Http\Controllers\ArticleController;
Route::get('/articles/{articleSlug}' , [ArticleController::class, 'single']);
Route::prefix('admin')->namespace('Admin')->group(function() {
Route::resource('articles' , ArticleADMController::class)->except(['show']);
});
现在,每当我想访问/admin/articles
时,我都会收到以下消息:
照明\合同\容器\绑定解决方案异常目标类**[管理\应用\Http\控制器\管理\文章控制器]不存在。**
然而,它确实存在,正如您在此图片中所看到的:
那么,这里出了什么问题?我该如何解决这个问题?
如果你知道,请帮我解决这个问题,我真的很感激你们的任何想法或建议...
先谢了。
3条答案
按热度按时间wwtsj6pe1#
从路由中删除命名空间('Admin')。您将为Admin/ArticleController添加前缀。由于您已使用命名空间路径,因此无需在路由组中单独添加任何命名空间。
如果仍然不能解决问题,请在Admin\ArticleController中共享名称空间声明。
92dk7w1h2#
对于给药途径:您已经指定控制器来自管理路径,请尝试此操作。
供试品途径:删除“使用”,并将完整路径直接纳入“供试品”路径中。
xuo3flqw3#
对于Laravel 9,在这样的情况下,这是我遇到类似问题时的解决方案
我发现问题是由web.php文件中的
Route::resource('/blog', 'BlogController', ['except' => ['show']]);
行引起的最初,我的资源注册为
Route::resource('/blog', 'BlogController', ['except' => ['show']]);
我继续将其重构为
Route::resource('/blog', 'App\Http\Controllers\BlogController', ['except' => ['show']]);
然后执行
php artisan route:clear
和php artisan optimize
,然后执行php artisan route:list
如果您正在使用
resources
,并且发现在web.php文件的顶部已经有了Controller的名称空间,但是仍然面临这个问题,那么这应该可以解决这个问题