Laravel 4之控制器

控制器

通常Laravel控制器文件放在app/controllers/目录下。该目录已被Composer自动加载。控制器名称可以任意取,但一般以Controller为后缀,然后继承BaseControllerController类,BaseController通常包括一些公用的控制器逻辑。

  1. <?php
  2. // app/controllers/ArticleController.php
  3. classArticleControllerextendsBaseController
  4. {
  5. publicfunction showIndex()
  6. {
  7. returnView::make('index');
  8. }
  9. publicfunction showSingle($articleId)
  10. {
  11. returnView::make('single');
  12. }
  13. }

在路由中调用控制器

  1. // app/routes.php
  2. Route::get('index','ArticleController@showIndex');

控制器中使用命名空间

  1. // app/routes.php
  2. Route::get('index','Namespace/ArticleController@showIndex');

在控制器路由中指定名称

  1. Route::get('foo', array('uses'=>'FooController@method',
  2. 'as'=>'name'));

使用URL::action方法获取一个控制器操作的链接

  1. $url = URL::action('FooController@method');

使用currentRouteAction方法获取当前控制器操作的名称

  1. $action =Route::currentRouteAction();

控制器过滤器

  1. Route::get('profile', array('before'=>'auth',
  2. 'uses'=>'UserController@showProfile'));

在控制器内部定义过滤器

  1. classUserControllerextendsBaseController{
  2. publicfunction __construct()
  3. {
  4. $this->beforeFilter('auth');
  5. $this->beforeFilter('csrf', array('on'=>'post'));
  6. $this->afterFilter('log', array('only'=>
  7. array('fooAction','barAction')));
  8. }
  9. }

RESTful 控制器

使用简单的REST命名规范,轻松定义单个路由去处理控制器的每个操作。避免为每个控制器动作绑定路由。定义一个 RESTful 控制器

  1. Route::controller('article','ArticleController');

ArticleController类中的方法以HTTP动作为前缀,如

  1. <?php
  2. // app/controllers/Article.php
  3. classArticleextendsBaseController
  4. {
  5. publicfunction getCreate()
  6. {
  7. returnView::make('create');
  8. }
  9. publicfunction postCreate()
  10. {
  11. // Handle the creation form.
  12. }
  13. }

如果你的控制器操作名称包含多个单词,你可以使用 "破折号" 语法来获得URI。例如,下面UserController控制器中的这个操作会用来应答users/admin-profileURI:

  1. publicfunction getAdminProfile(){}

结束

最新文章

  1. Windows Phone中扩展WebBrowser使其支持绑定html内容
  2. MySQL运行状态show status中文详解(转)
  3. DataTable 导到Excel
  4. codeforces 711D D. Directed Roads(dfs)
  5. Andriod——区别DVM与JVM
  6. LinkedHashSet与TreeSet
  7. Median of Two Sorted Arrays-----LeetCode
  8. Swift是一个提供RESTful HTTP接口的对象存储系统
  9. POI 导出导入工具类介绍
  10. Typescript---02 变量声明
  11. python函数名称
  12. ActiveMQ 的线程池
  13. OS模块(与操作系统交互)
  14. 优秀的 Go 存储开源项目和库
  15. TCP UDP Socket 即时通讯 API 示例 MD
  16. P2880 [USACO07JAN]平衡的阵容Balanced Lineup
  17. Java数组初始
  18. 12.Spring——Web MVC框架
  19. Jpa 语法和 demo
  20. Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案

热门文章

  1. JavaScripts学习日记——ECMAscript
  2. C#工厂模式代码实例
  3. jQuery制作焦点图(轮播图)
  4. mysql三种binlog日志的理解
  5. nignx日志格式
  6. Windows消息机制(转)1
  7. java基础2
  8. zeromq源码分析笔记之线程间收发命令(2)
  9. JSP EL
  10. ecshop安全方面的一些参考建议