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. Oracle 用户、对象权限、系统权限

    --================================ --Oracle 用户.对象权限.系统权限 --================================  一.用户与模式 ...

  2. Asp.Net中的消息处理---MSMQ系列学习(一)

    刚刚毕业一年,比较浮躁,上次面试被问到消息队列,觉得非常的惭愧因为不知道,所以下定决心一定要学会使用它.以前只是听说过有这么个东西,要说是什么,在什么场景下使用却是无从知晓,因为自己也确实没有在项目中 ...

  3. Label 表达式绑定

    Text='<%#"总金额为: "+Convert.ToString(Convert.ToDecimal(TextBox1.Text)*Convert.ToInt32(Tex ...

  4. Windows命令行(DOS命令)教程-5 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_4.html

    5. copy copy在英文中是复制的意思 [功能] 复制一个或一组文件到指定的磁盘或目录中 [格式] copy [C:][path][filename.ext] [C:][path]filenam ...

  5. redis的备份和恢复

    Redis 数据备份与恢复 数据备份 语法 redis Save 命令基本语法如下: redis > SAVE 实例 redis > SAVE OK 该命令将在 redis 备份目录中创建 ...

  6. hdu1372 BFS求最短路径长度

    C - 广搜 基础 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bi ...

  7. Combination Sum,Combination Sum II,Combination Sum III

    39. Combination Sum Given a set of candidate numbers (C) and a target number (T), find all unique co ...

  8. No1_7.类和对象_Java学习笔记

    一.面向对象的特点:a.封装:封装是面向对象的核心思想,将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想: 保证了类内部数据的完整性,应用该类的用户不能轻易直接操纵 ...

  9. forward 和redirect的区别

    1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地 ...

  10. hadoop集群中的日志文件

    hadoop存在多种日志文件,其中master上的日志文件记录全面信息,包括slave上的jobtracker与datanode也会将错误信息写到master中.而slave中的日志主要记录完成的ta ...