laravel 4创建模块并将控制器,模块和视图放在模块内部

时间:2014-05-21 21:10:37

标签: php laravel url-rewriting laravel-4 routing

之前我曾在yii框架上工作,并且我有可能创建模块文件夹,并在此内部放置例如:新闻模块,其中包含控制器,视图和模块

我是laravel的新手并试图创造同样的东西 MODULE

我尝试了以下内部路由

Route::get('/news','/modules/news/controllers/NewsController@index'); 

文件存在,但我正在

ReflectionException
Class /modules/news/controllers/NewsController does not exist
为什么?我做错了什么?

2 个答案:

答案 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');