【问题标题】:laravel can't find controller in subfolderlaravel 在子文件夹中找不到控制器
【发布时间】: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');

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

有什么建议吗?

【问题讨论】:

  • 您可能需要运行composer dumpautoload。如果您移动了文件和/或更改了命名空间,这可能是您的 composer.lock 文件中的问题。

标签: laravel laravel-5 routes


【解决方案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://stackoverflow.com/a/51800675/7362396 (https://laravel.com/docs/5.6/routing#route-group-namespaces)

    【讨论】:

    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2015-05-31
    • 2013-09-21
    • 1970-01-01
    • 2016-11-19
    • 2013-01-08
    相关资源
    最近更新 更多