【问题标题】:Routing in Laravel moduleLaravel 模块中的路由
【发布时间】:2016-03-03 23:11:41
【问题描述】:

我在 Laravel 5 中创建了一个模块,即在与 app 文件夹相同的级别内,作为在 Laravel 中创建 HMVC 结构的一部分。我在模块文件夹中有两个模块,一个是项目文件夹,另一个是表单文件夹。现在我在这些文件夹中获得了控制器、模型和视图。

Click here to view folder structure

现在当我尝试像

一样访问我的控制器时
Route::controller('project/dashboard', 'ProjectController@index');

我收到错误

ReflectionException in ControllerInspector.php line 35:
Class ProjectController does not exist

我想知道如何在 Laravel 中以模块化结构路由控制器。

【问题讨论】:

    标签: laravel-5


    【解决方案1】:

    你遇到这个问题是因为 modules 目录对 Laravel 的 psr 模块不可见。基于 laravel 版本,您可以将 modules 目录放入 composer 中的 psr "App\\": "app/",

    之后

    例如: "psr-4": { "App\\": "app/", "Modules\\": "modules/" } 在 app.php 中,它位于 laravel 5 中的 app/config/app.php 或 config/app.php 中。

    然后执行composer命令composer dump-autoload -o。 现在开始,您的模块将按照您的意愿工作。

    如果仍然有问题,您可以试试这个包,它与您尝试做的事情相同。 https://github.com/yubarajshrestha/laravel-module

    【讨论】:

      【解决方案2】:

      当使用Route::controller 时使用这个Route::controller('project/dashboard','ProjectController');

      在你的控制器内部定义方法,如

      public function getIndex(){
          // write your code here
      }
      
      public function postIndex(){
          // write your code here
      }
      public function getCreate(){
          // write your code here
      }
      
      public function postStore(){
          // write your code here
      }
      

      【讨论】:

      • 在上面的代码中,'ProjectController'中会指向哪个方法?
      • 当你使用getIndex()时,它会被重定向为get方法,如果你使用postIndex(),它将是post方法。
      猜你喜欢
      • 2022-10-14
      • 2016-06-28
      • 2015-12-06
      • 2019-06-13
      • 1970-01-01
      • 2021-10-14
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多