【问题标题】:Moving routes/web.php file gives class not found error移动 routes/web.php 文件给出类未找到错误
【发布时间】:2018-07-02 05:27:03
【问题描述】:

我正在使用 Laravel 5.6 框架,我想将路由文件移动到另一个目录。我把它从原来的~/routes/web.php 目录移到了~/config/routes/web.php。

然后我将RouteServiceProvider 中的mapWebRoutes 方法更改为:

Route::middleware('web')
     ->namespace($this->namespace)
     ->group(base_path('config/routes/web.php'));

现在当我尝试启动 laravel 时出现错误:

在 web.php 第 14 行: 找不到类“路线”

我已经在app.php 配置文件中检查了别名数组。这就是正确的类:

'Route'        => Illuminate\Support\Facades\Route::class,

当我将 routes 目录改回原来的 ~/routes/web.php 目录时,一切正常。

我还尝试将类导入web.php 路由文件,如下所示:

use Illuminate\Support\Facades\Route;

然后我在尝试启动 laravel 时收到此错误。

在 Facade.php 第 218 行: 尚未设置外观根。

如何才能将路由文件移动到另一个目录而不会出现此错误?

【问题讨论】:

  • 使用 ->group(base_path('config' . DIRECTORY_SEPARATOR . 'routes' . DIRECTORY_SEPARATOR .'web.php'));

标签: php laravel laravel-5


【解决方案1】:

将它们移动到由于特定原因未被扫描的目录。

config 目录专门用于配置文件,它们会在流程的早期加载,在提供程序之前......这就是您的应用程序如何从配置文件中获取要加载的提供程序列表的方式。

如果您想在项目的根目录中创建一个名为 random 的目录并将您的路由放在那里,只需在 RouteServiceProvider 中适当更改路径即可。

【讨论】:

    【解决方案2】:
    Route::middleware('web')
         ->namespace($this->namespace)
         ->group(base_path('path/routes/web.php'));
    

    但是路径不能配置,
    例如 base_path('public/routes/web.php') 但不是 base_path('config/routes/web.php')

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 1970-01-01
      • 2017-07-28
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多