【问题标题】:Routes for accessing controllers inside vendor folder of laravellaravel 的 vendor 文件夹中访问控制器的路由
【发布时间】:2016-03-17 05:27:26
【问题描述】:

我有 LfmController.php 的 tswaler laravel-filemanager 包,其文件夹结构如 project\vendor\tsawler\laravel-filemanager\src\controllers\LfmController.php

我使用路由作为Route::get('/laravel-filemanager', 'Tsawler\Laravelfilemanager\controllers\LfmController@show'); 来访问该控制器的show() 方法。但它给出了:

ReflectionException in Container.php line 737: Class App\Http\Controllers\Tsawler\Laravelfilemanager\controllers\LfmController does not exist 错误。这在我以前的项目中有效,但现在不适用于当前项目。访问供应商文件夹内的控制器的路由结构应该是什么,如上?如何调试此类问题?

【问题讨论】:

    标签: laravel laravel-4 laravel-5


    【解决方案1】:

    您应该在控制器命名空间的开头添加“\”:

    Route::get('/laravel-filemanager', '\Tsawler\Laravelfilemanager\controllers\LfmController@show');
    

    默认情况下,routes.php 假定您的控制器位于 'App\Http\Controllers' 命名空间中,但添加 '\' 将导致它在根命名空间中查找。

    【讨论】:

    • ,所以添加'\'将从供应商文件夹的根目录中获取位置是吗?
    • 然后它将查看应用程序的整个根命名空间,包括供应商文件夹中的文件。
    【解决方案2】:

    在我的例子中,我忘记在 config/lfm.php 中将 'use_package_routes' 设置为 false 以启用我的自定义路由。

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2017-05-08
      • 2013-11-14
      相关资源
      最近更新 更多