所以在我的项目中,我有一个放在app
文件夹中的类(不在app/http/controllers
内)并且中间件只有App
。
当我尝试从 routes.php 获取其方法时,找不到它,因为它不在控制器文件夹和中间件中。
我应该写什么而不是Route::get('/get', 'MyApi@get');
才能使它全部工作?
答案 0 :(得分:2)
首先,对于 API ,您应该使用Lumen之类的内容,或者,如果您想在主项目中使用,请在Controllers
文件夹中创建嵌套文件夹,并从Api\MyApi@get
等路线访问它。
如果你真的想要它在控制器文件夹之外(完全没有理由,恕我直言),你需要更改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 = '';
// ...
}
然后为控制器指定完整的命名空间,并从任何地方访问它。
答案 1 :(得分:0)
如果正确命名控制器,则可以在子文件夹中组织控制器。我想不出将应用程序控制器放在应用程序的控制器目录中的正当理由。
请参阅: