控制器
通常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(){}
结束
[转]Laravel 4之控制器的更多相关文章
-
Laravel 5.2控制器--RESTful 资源控制器
laravel的资源控制器 一.创建资源控制器 在命令行上,创建一个新的资源控制器 php artisan make:controller TestController --resource 然后在你 ...
-
laravel路由与控制器(资源路由restful)
目前我们大致了解了laravel下,在开始一个Http程序需要先定义路由.之前的例子中,我们的业务逻辑都是在路由里实现,这对于简单的网站或web应用没什么问题,当我们需要扩大规模,程序变得复杂,分层的 ...
-
Laravel路由和控制器的绑定
路由和控制器的关系 路由文件地址在\app\Http\routes.php,我们来看两种不同的路由. Route::get('/', function () { return view('welcom ...
-
laravel如何自定义控制器目录
默认控制器在App\Http\Controllers目录下,如何自定义目录呢? 首先我们看一下laravel的请求周期 我们看一下服务提供者RouteServicePrivder文件中的一个函数 /* ...
-
Laravel 的HTTP控制器
简介# 除了在路有文件中以闭包的形式定义所有的请求处理逻辑外,还可以使用控制器类来组织此类行为,控制器能够将相关 的请求处理逻辑组成的一个单独的类,控制器被存放在app/Http/Controller ...
-
Laravel 5.2控制器--为什么命令行创建控制器的时候会报错?
今天我遇到过一种情况:就是之前创建的控制器名称想更改(仅仅只是大小写问题而已),然后用命令行重新创建新的名称的控制器. 结果就报错了? [ReflectionException] Class App\ ...
-
laravel里面的控制器笔记
看了下教程,总结了下,大概分两种 一般的controller restful的controller 单独绑定action的route为 Route::get('user/{id}', 'UserCon ...
-
Laravel中创建控制器
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\H ...
-
Laravel 实现多级控制器(实现Api区分版本)
路由: Route::get('', 'v1\\UserController@index'); 文件夹分层 User控制器命名空间: namespace App\Http\Controllers\v1 ...
随机推荐
-
js库
lanchpad用的js库 http://lesscss.org/ https://github.com/EightMedia/hammer.js/wiki/Getting-Started http: ...
-
html5页面打包成App - Android或Iphone安装程序
下载安装前端开发工具:HBuilder 官网下载:http://www.dcloud.io/ 根据官网说明安装 * 打开登录HBuilder,把做好的H5页面通过添加app项目把H5的文件夹加入进来( ...
-
关于Java反射机制的几个问题
>>如何在运行时确定对象类型 运行时类型识别(Run-time Type Identification, RTTI)主要有两种方式, 一种是在编译时和运行时已经知道了所有的类型,另外一种是 ...
-
java 静态方法和实例方法的区别
转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法 ...
-
查看SDCard是否被挂载
获取Environment.getExternalStorageState(),然后得到的字符串进行查看 //android.os.Environment.MEDIA_MOUNTED="mo ...
-
Android SDK Manager无法更新的解决办法
Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xmlFailed to fetch URL https://d ...
-
git:hook declined FATAL: W refs/heads DENIED by fallthru error
hook declined FATAL: W refs/heads DENIED by fallthru error git提交代码时报错,网上查了,最终结果竟然是测试人员没有给我配置写的权限,配置了 ...
-
Python开发——9.面向对象编程
一.面向对象设计(Object oriented design) 面向对象设计是将一类具体事物的数据和动作整合到一起的过程,不会要求面向对象语言编程,但如果想要构造具备对象性质和特点的数据类型,需要更 ...
-
Mac为python2.7.10安装pip
首先下载get-pip.py https://bootstrap.pypa.io/get-pip.py alias python="/usr/bin/python2.7" pyth ...
-
Android网络框架Volley
Volley是Google I/O 2013推出的网络通信库,在volley推出之前我们一般会选择比较成熟的第三方网络通信库,如: android-async-http retrofit okhttp ...