laravel 在子文件夹中找不到控制器

Posted

技术标签:

【中文标题】laravel 在子文件夹中找不到控制器【英文标题】:laravel can't find controller in subfolder 【发布时间】:2019-01-18 21:39:09 【问题描述】:

我正在尝试将 HomeController 放在名为 Front 的文件夹中。这是 Laravel 5.6

所以我的控制器的路径是Controllers/Front/HomeController.php

namespace App\Http\Controllers\Front;

use Illuminate\Http\Request;

class HomeController extends Controller
    

然后在我的路线中我有这个:

Route::get('/', 'HomeController@index');

正如 *** 中所建议的:Laravel Controller Subfolder routing 我已尝试将控制器添加到子文件夹,然后运行 ​​composer dump-autoload 但它不起作用。

有什么建议吗?

【问题讨论】:

您可能需要运行composer dumpautoload。如果您移动了文件和/或更改了命名空间,这可能是您的 composer.lock 文件中的问题。 【参考方案1】:

您可以在组中添加所有路由并为其添加前缀

  Route::group(['namespace' => 'Front'], function () 
        Route::get('/', 'HomeController@index');

 );

【讨论】:

【参考方案2】:

在控制器字符串中指定前缀:'Front\HomeController@index' (https://laravel.com/docs/5.6/controllers#controllers-and-namespaces)

或者将你的路由放在一个具有命名空间的组中:https://***.com/a/51800675/7362396 (https://laravel.com/docs/5.6/routing#route-group-namespaces)

【讨论】:

在我的另一个项目中,不需要在路线中添加 Front\,还有 laravel 5.6 也许您在路由组中指定了命名空间前缀?这也是一个可行的选择。见laravel.com/docs/5.6/routing#route-group-namespaces

以上是关于laravel 在子文件夹中找不到控制器的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5 中找不到用户类

NMAKE 在子文件夹中找不到包含文件

在 laravel 4 中找不到类控制器

在 laravel 5 中找不到类控制器

在 laravel 5 中找不到助手类

新鲜的 laravel lumen 找不到控制器驻留在控制器的子文件夹下