我以前在yii框架上工作过,我有可能创建模块文件夹,并在此放置例如:news模块,其中包括控制器,视图和模块
我是新的laravel,并试图创建相同的东西MODULE
我尝试了以下内部路由
Route::get('/news','/modules/news/controllers/NewsController@index');
文件存在,但我得到
ReflectionException
Class /modules/news/controllers/NewsController does not exist
为什么?我做错了什么?
Route::get()
函数正在寻找一个(自动)加载的类,而不是在磁盘上加载一个文件,这就是为什么你得到这些错误。
更Laravelish (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的Packages来"打包"功能,但是最好先看看优秀的文档,然后再带着具体的问题回来。
把你的Laravel控制器放在app/controllers中,因为这个目录会自动加载,它是Laravel期望控制器所在的目录。
然后你可以使用这样的路由(示例直接从http://laravel.com/docs/controllers#basic-controllers的文档)
Route::get('user/{id}', 'UserController@showProfile');