【问题标题】:Laravel Route::get directly from App folderLaravel Route::get 直接从 App 文件夹
【发布时间】:2016-09-14 09:24:02
【问题描述】:

所以在我的项目中,我有一个类放在app 文件夹中(不在app/http/controllers 中),并且只有App 的中间件。

当我试图从 routes.php 获取它的方法时,它找不到,因为它不在控制器文件夹和中间件中。

我应该写什么而不是 Route::get('/get', 'MyApi@get'); 才能让一切正常工作?

【问题讨论】:

  • 为什么它有外部控制器文件夹?
  • 因为如果我想制作自己的 API,我不知道在哪里上课
  • 制作一个新的控制器。这样更好
  • php artisan make:controller NewController

标签: php laravel routing routes


【解决方案1】:

首先,对于您的 API,您应该使用 Lumen 之类的东西,或者,如果您想在主项目中使用它,请在您的 Controllers 文件夹中创建嵌套文件夹,然后访问它来自Api\MyApi@get等路线。

如果您真的希望它在 Controllers 文件夹之外(绝对没有理由,恕我直言),您需要将 RouteServiceProvider 命名空间设置更改为空字符串:

class RouteServiceProvider extends ServiceProvider
{
    /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = '';

    // ...
}

然后为您的控制器指定完整的命名空间并从您想要的任何地方访问它。

【讨论】:

    【解决方案2】:

    如果您正确命名控制器,您可以将控制器组织在子文件夹中。我想不出不将应用程序控制器放在应用程序的控制器目录中的正当理由。

    见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2015-09-01
      • 2016-09-19
      • 2015-10-30
      • 1970-01-01
      相关资源
      最近更新 更多