需要更改 Laravel 控制器路径已在 serviceprovider 上设置命名空间为空
Posted
技术标签:
【中文标题】需要更改 Laravel 控制器路径已在 serviceprovider 上设置命名空间为空【英文标题】:Need to change Laravel controller path already set namespace empty on serviceprovider 【发布时间】:2016-11-17 06:27:26 【问题描述】:我想改变路由的路径,但还是报错
类 HomeController 不存在
下面是我的代码
在app/Http/routes.php页面
Route::get('admin/restaurantMenu', 'HomeController@index');
在 app/Provider/RouteServiceProvider.php 页面中
protected $namespace = '';
根目录上的主控制器页面 HomeController.php 见附图
我已经尝试过了
-
作曲家转储自动加载
php 工匠优化
php 工匠路线:清除
php 工匠路线:缓存
HomeController.php
【问题讨论】:
【参考方案1】:默认情况下,您的路由器将位于“App/Http/Controllers”命名空间中。 (我看不到您在切断图像时保留了该名称空间,但我假设......我知道......我不应该假设)
所以通过改变
protected $namespace = 'App\Http\Controllers';
成为
protected $namespace = ''
Laravel 正在尝试将 'App\Http\Controllers\HomeController' 与 'HomeController' 匹配,但没有找到它。
您应该将受保护的 $namespace 改回原来的样子,它应该可以开始工作了。
您将控制器移动到应用程序的根目录中是否有原因?虽然 Laravel 让移动东西变得非常容易,但将所有控制器放在一起应该会使应用程序更容易理解。
路由本身控制 URL 而不是 app/ 中控制器文件的位置。
希望这对您有所帮助?
【讨论】:
以上是关于需要更改 Laravel 控制器路径已在 serviceprovider 上设置命名空间为空的主要内容,如果未能解决你的问题,请参考以下文章
运行 ng serve 命令时“端口 4200 已在使用中”
Laravel:php artisan serve 无法启动
使用“php artisan serve”命令运行 Laravel 有啥意义?