之前我曾在yii框架上工作,并且我有可能创建模块文件夹,并在此内部放置例如:新闻模块,其中包含控制器,视图和模块
我是laravel的新手并试图创造同样的东西 MODULE
我尝试了以下内部路由
Route::get('/news','/modules/news/controllers/NewsController@index');
文件存在,但我正在
ReflectionException
Class /modules/news/controllers/NewsController does not exist
为什么?我做错了什么?
答案 0 :(得分:2)
Route::get()
函数正在查找(自动)加载的类,而不是要加载的磁盘上的文件,这就是您收到这些错误的原因。
Laravely( Laravelish?)包括:
/app/controllers/
目录中的控制器/app/views/
目录中的观看次数/app/models/
目录中的模型如果您刚开始使用Laravel,这可能是开始使用的最佳方式。然后自动加载器知道在哪里查找您的类,并且所有内容都会自动为您处理。
NewsController
位于/app/controllers/
,您可以执行此操作:
// no need to start the route location with a slash:
Route::get('news', array('uses' => 'NewsController@index'));
你可以"打包"使用Laravel's Packages提升功能,但最好查看优秀的文档,然后再回答具体问题。
答案 1 :(得分:2)
将Laravel控制器放在应用程序/控制器中,因为该目录可以自动加载,这是Laravel期望控制器所在的位置。
然后你可以使用这样的路线(例如直接来自http://laravel.com/docs/controllers#basic-controllers的文档)
Route::get('user/{id}', 'UserController@showProfile');