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 在子文件夹中找不到控制器的主要内容,如果未能解决你的问题,请参考以下文章