所以在我的项目中,我有一个类放置在app
文件夹(不在app/http/controllers
内),并且中间件只有App
。Laravel路线::直接从App文件夹中获取
当我试图从routes.php得到它的方法它没有找到,因为它不在控制器文件夹和中间件。
我应该写什么而不是Route::get('/get', '[email protected]');
才能使它工作?
所以在我的项目中,我有一个类放置在app
文件夹(不在app/http/controllers
内),并且中间件只有App
。Laravel路线::直接从App文件夹中获取
当我试图从routes.php得到它的方法它没有找到,因为它不在控制器文件夹和中间件。
我应该写什么而不是Route::get('/get', '[email protected]');
才能使它工作?
首先,为您API如果你想你应该使用类似Lumen,或者,它的主要项目中,使内嵌套的文件夹您的Controllers
文件夹,并从Api\[email protected]
这样的路线访问它。
如果你真的希望它外面控制器文件夹(绝对没有理由吧,恕我直言),您需要更改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 = '';
// ...
}
然后指定完整的命名空间为您的控制器,并从任何你想要的地方访问它。
如果您正确命名它们,您可以在子文件夹中组织控制器。我想不出有没有把应用程序控制器放在应用程序的控制器目录中的正当理由。
参见:
为什么它有外部控制器文件夹? – geckob
,因为如果我试图制作我自己的API,我不知道该把类放在哪里。 – Coffee
改为创建一个新的控制器。这是更好 – geckob