【问题标题】:Need to change Laravel controller path already set namespace empty on serviceprovider需要更改 Laravel 控制器路径已在 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 见附图

我已经尝试过了

  1. 作曲家转储自动加载
  2. php 工匠优化
  3. php 工匠路线:清除
  4. php 工匠路线:缓存

HomeController.php

【问题讨论】:

    标签: controller namespaces laravel-5.2 laravel-routing


    【解决方案1】:

    默认情况下,您的路由器将位于“App/Http/Controllers”命名空间中。 (我看不到您在切断图像时保留了该名称空间,但我假设......我知道......我不应该假设)

    所以通过改变

    protected $namespace = 'App\Http\Controllers';
    

    成为

    protected $namespace = ''
    

    Laravel 正在尝试将 'App\Http\Controllers\HomeController' 与 'HomeController' 匹配,但没有找到它。

    您应该将受保护的 $namespace 改回原来的样子,它应该可以开始工作了。

    您将控制器移动到应用程序的根目录中是否有原因?虽然 Laravel 让移动东西变得非常容易,但将所有控制器放在一起应该会使应用程序更容易理解。

    路由本身控制 URL 而不是 app/ 中控制器文件的位置。

    希望这对您有所帮助?

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      相关资源
      最近更新 更多