需要更改 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 Auth登录视图

Laravel:php artisan serve 无法启动

使用“php artisan serve”命令运行 Laravel 有啥意义?

laravel8-php artisan serve 命令错误

Laravel 默认存储路径更改