您的位置:首页 > 编程语言 > PHP开发

[转]Laravel 4之控制器

2014-02-22 14:02 344 查看
Laravel 4之控制器
http://dingjiannan.com/2013/laravel-controller/

控制器

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

<?php


// app/controllers/ArticleController.php


classArticleControllerextendsBaseController


{


publicfunction showIndex()


{


returnView::make('index');


}


publicfunction showSingle($articleId)


{


returnView::make('single');


}


}


在路由中调用控制器

// app/routes.php


Route::get('index','ArticleController@showIndex');


控制器中使用命名空间

// app/routes.php


Route::get('index','Namespace/ArticleController@showIndex');


在控制器路由中指定名称

Route::get('foo', array('uses'=>'FooController@method',


'as'=>'name'));


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

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


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

$action =Route::currentRouteAction();


控制器过滤器

Route::get('profile', array('before'=>'auth',


'uses'=>'UserController@showProfile'));


在控制器内部定义过滤器

classUserControllerextendsBaseController{


publicfunction __construct()


{


$this->beforeFilter('auth');


$this->beforeFilter('csrf', array('on'=>'post'));


$this->afterFilter('log', array('only'=>


array('fooAction','barAction')));


}


}


RESTful 控制器

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

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


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

<?php


// app/controllers/Article.php


classArticleextendsBaseController


{


publicfunction getCreate()


{


returnView::make('create');


}


publicfunction postCreate()


{


// Handle the creation form.


}


}


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

publicfunction getAdminProfile(){}


结束

点击查看评论
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: