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(){}

结束

[转]Laravel 4之控制器的更多相关文章

  1. Laravel 5.2控制器--RESTful 资源控制器

    laravel的资源控制器 一.创建资源控制器 在命令行上,创建一个新的资源控制器 php artisan make:controller TestController --resource 然后在你 ...

  2. laravel路由与控制器(资源路由restful)

    目前我们大致了解了laravel下,在开始一个Http程序需要先定义路由.之前的例子中,我们的业务逻辑都是在路由里实现,这对于简单的网站或web应用没什么问题,当我们需要扩大规模,程序变得复杂,分层的 ...

  3. Laravel路由和控制器的绑定

    路由和控制器的关系 路由文件地址在\app\Http\routes.php,我们来看两种不同的路由. Route::get('/', function () { return view('welcom ...

  4. laravel如何自定义控制器目录

    默认控制器在App\Http\Controllers目录下,如何自定义目录呢? 首先我们看一下laravel的请求周期 我们看一下服务提供者RouteServicePrivder文件中的一个函数 /* ...

  5. Laravel 的HTTP控制器

    简介# 除了在路有文件中以闭包的形式定义所有的请求处理逻辑外,还可以使用控制器类来组织此类行为,控制器能够将相关 的请求处理逻辑组成的一个单独的类,控制器被存放在app/Http/Controller ...

  6. Laravel 5.2控制器--为什么命令行创建控制器的时候会报错?

    今天我遇到过一种情况:就是之前创建的控制器名称想更改(仅仅只是大小写问题而已),然后用命令行重新创建新的名称的控制器. 结果就报错了? [ReflectionException] Class App\ ...

  7. laravel里面的控制器笔记

    看了下教程,总结了下,大概分两种 一般的controller restful的controller 单独绑定action的route为 Route::get('user/{id}', 'UserCon ...

  8. Laravel中创建控制器

    <?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\H ...

  9. Laravel 实现多级控制器(实现Api区分版本)

    路由: Route::get('', 'v1\\UserController@index'); 文件夹分层 User控制器命名空间: namespace App\Http\Controllers\v1 ...

随机推荐

  1. Citrix 服务器虚拟化之九 Xenserver虚拟机的XenMotion

    Citrix 服务器虚拟化之九 Xenserver虚拟机的XenMotion XenMotion 是 XenServer 的一项功能,能够将正在运行的虚拟机从一台 XenServer 主机上迁移到另外 ...

  2. post请求和get请求的区别

    1:如果表单是以post方式发送,那么表单中的数据会放在请求报文体中,发送到服务端.但是如果是以get方式提交表单,那么表单中用户输入的数据都是以URL地址的方式发送到服务端. 2:在服务端接收数据时 ...

  3. 用C#代码控制水晶报表中的对象

    在C#代码中调用水晶报表的各个对象:字段对象:FieldObject obj=(FieldObject)oRpt.ReportDefinition.ReportObjects["FieldO ...

  4. respondsToSelector的使用

    - (BOOL)respondsToSelector:(SEL)aSelector; 用来判断是否有以某个名字命名的方法 +(BOOL) instancesRespondToSelector: sel ...

  5. 基于Pojo的开发模式(day03)

    上一次的文章讨论到了Spring的设计目标:使得JEE开发更易用. ok,作为一个Java开发人员,应该都知道struts这个框架,不知道是否大家都清楚struts1和struts2的区别. 首先,这 ...

  6. 用C++写出hanoi

    汉诺塔(港台:河內塔)是根据一个传说形成的數學问题有三根杆子A,B,C.A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小.要求按下列规则将所有圆盘移至C杆:-每次只能移动一个圆盘-大的盘 ...

  7. 洛谷 P3367 【模板】并查集

    P3367 [模板]并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作. 输入输出格式 输入格式: 第一行包含两个整数N.M,表示共有N个元素和M个操作. 接下来M行,每行包含三个整数 ...

  8. hdu5360 Hiking(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Hiking Time Limit: 6000/3000 MS (Java/Oth ...

  9. mysql to sql sersver

    USE SCK_PARA GO /****** Object:  StoredProcedure [dbo].[syncdata_mysql2sqlserver]    Script Date: 08 ...

  10. python中的 json 模块使用

    (1)python 中生成 json 字符串: import json data = dict(ret=0, msg="Welcome, Login success!") json ...