[转]Laravel 4之控制器
2014-02-22 14:02
344 查看
Laravel 4之控制器
http://dingjiannan.com/2013/laravel-controller/
在路由中调用控制器
控制器中使用命名空间
在控制器路由中指定名称
使用
使用
在控制器内部定义过滤器
ArticleController类中的方法以HTTP动作为前缀,如
如果你的控制器操作名称包含多个单词,你可以使用 "破折号" 语法来获得URI。例如,下面
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-profileURI:
publicfunction getAdminProfile(){}
结束
点击查看评论相关文章推荐
- [转]Laravel 4之路由
- [转]laravel 4之视图及Responses
- PHP的ISAPI和FastCGI比较
- php的SAPI,CLI SAPI,CGI SAPI
- Laravel 安装指南
- PHP的核心Zend Engine
- 【PHP】php 递归、效率和分析
- PHP Cookie学习
- ThinkPHP中实例化对象M()和D()的区别
- QPS TPS
- PHP扩展开发:一个简单的例子
- phpMyAdmin import.php 跨站脚本漏洞
- PHP中VC6、VC9、TS、NTS版本的区别与用法详解
- PHP开源框架之SugarCRM
- lamobo跑ltp出現了lowmemory錯誤
- php读取excel日期类型数据的例子
- PHP之負載均衡下的session共用
- PHP ZEND API整理
- Postfix实现代理Exchange邮件传输方案 推荐
- PHP案例 简易网上书店之会员注册和登录设计