[转]Laravel 4之控制器

时间:2022-03-07 16:22:26
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&period;2控制器--RESTful 资源控制器

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

  2. laravel路由与控制器&lpar;资源路由restful&rpar;

    目前我们大致了解了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&period;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 实现多级控制器&lpar;实现Api区分版本&rpar;

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

随机推荐

  1. js库

    lanchpad用的js库 http://lesscss.org/ https://github.com/EightMedia/hammer.js/wiki/Getting-Started http: ...

  2. html5页面打包成App - Android或Iphone安装程序

    下载安装前端开发工具:HBuilder 官网下载:http://www.dcloud.io/ 根据官网说明安装 * 打开登录HBuilder,把做好的H5页面通过添加app项目把H5的文件夹加入进来( ...

  3. 关于Java反射机制的几个问题

    >>如何在运行时确定对象类型 运行时类型识别(Run-time Type Identification, RTTI)主要有两种方式, 一种是在编译时和运行时已经知道了所有的类型,另外一种是 ...

  4. java 静态方法和实例方法的区别

    转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法 ...

  5. 查看SDCard是否被挂载

    获取Environment.getExternalStorageState(),然后得到的字符串进行查看 //android.os.Environment.MEDIA_MOUNTED="mo ...

  6. Android SDK Manager无法更新的解决办法

    Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xmlFailed to fetch URL https://d ...

  7. git&colon;hook declined FATAL&colon; W refs&sol;heads DENIED by fallthru error

    hook declined FATAL: W refs/heads DENIED by fallthru error git提交代码时报错,网上查了,最终结果竟然是测试人员没有给我配置写的权限,配置了 ...

  8. Python开发——9&period;面向对象编程

    一.面向对象设计(Object oriented design) 面向对象设计是将一类具体事物的数据和动作整合到一起的过程,不会要求面向对象语言编程,但如果想要构造具备对象性质和特点的数据类型,需要更 ...

  9. Mac为python2&period;7&period;10安装pip

    首先下载get-pip.py https://bootstrap.pypa.io/get-pip.py alias python="/usr/bin/python2.7" pyth ...

  10. Android网络框架Volley

    Volley是Google I/O 2013推出的网络通信库,在volley推出之前我们一般会选择比较成熟的第三方网络通信库,如: android-async-http retrofit okhttp ...