所以在我的項目中,我有一個類放置在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