Laravel5.1 -控制器(初步了解)

首先道个歉 这篇笔记是前两天就应该写的,可大K有点事儿要忙 就耽误了,今天抽空学了学控制器,并写个笔记分享下。

为什么要使用控制器

像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件特别庞大,其实我们应该把这些逻辑都抽到一个控制器里,路由分发后到控制器,控制器做相应的操作,比如关于后台的逻辑应该抽到AdminController中,Route文件只管分发。


1 如何创建一个控制器

1.1.1 创建RESTful控制器

至于什么是RESTful?自行百度- -,我先简单说下,它里面自动填充了一些增删改查的方法。OK 我们在Artisan控制台创建:

php artisan make:controller Admin\\HomeController

然后 我们在 app/Http/Controller/Admin/ 下找到它:

class HomeController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

每个方法就是它的字面意思,至于怎么使用,我们来注册一条路由就清楚了。

1.1.2 实现RESTful路由

Route::group([‘prefix‘ => ‘admin‘, ‘namespace‘ => ‘Admin‘], function (){
    Route::resource(‘/‘, ‘HomeController‘);
});

resource是为RESTful风格的控制器注册多条路由的 我们可以在Artisan控制台看看:

php artisan route:list

如果没有什么错误的话,咱肯定会看见打印出来的表,表里面标明了每条路由的属性,如果你还是不太明白,那无所谓~咱以后的文章会频繁使用到这些内容哦。

1.2.1 普通控制器

在实际开发中啊 有时候咱不一定需要RESTful风格的服务器,我们只想要一个空的控制器来自己实现一些方法,可以这么生成:

php artisan make:controller UserController --plain

只要后面跟个plain标识符 就可以生成空的控制器啦。

1.2.2 单条路由使用控制器

上面是使用resource方法来对应控制器的动作了,像这种空的控制器咱怎么在路由中使用呢?

/**
 * 控制器名@方法名 就可以了
 */
Route::get(‘/user‘, ‘[email protected]‘);

/**
 * 这是在配置一些其他东西时的写法,因为要在数组中嘛,它对应的KEY是uses。
 */
Route::get(‘/user‘, [‘as‘ => ‘showUser‘, ‘uses‘ => ‘[email protected]‘]);

然后自行实现UserController的index方法就可以咯:

class UserController extends Controller
{
    public function index()
    {
        return ‘展示一些东西‘;
    }
}

1.3.1 其实还有另一种写法 隐式控制器

这种路由我不太常用 先来看看语法吧:

Route::controller(‘/user‘, ‘UserController‘);

首先 使用了controller来注册路由,第一个参数是路径没新鲜的,第二个参数是控制器 但是它没有跟着方法。因为它能自动根据路径相应到方法 看看下面控制器方法的实现。

class UserController extends Controller
{
    /**
     * 对应着 /user/ 路由  GET方式
     */
    public function getIndex()
    {
        return ‘展示一些东西~‘;
    }

    /**
     * 对应着 /user/show/{id} 路由  GET方式
     */
    public function getShow($id)
    {
        return ‘此用户ID为: ‘.$id;
    }

    /**
     * 对应着 /user/update/{id} 路由  POST方式
     */
    public function postUpdate($id, Requests\Request $request){

    }
}

这个控制器的方法开头都是HTTP请求的方式 最常用的就是GET 和 POST 后面跟的是方法名字,具体对应的路径在注释中写清楚了。

如果你想给这些路由命名的话,后面可以跟一个数组来命名:

Route::controller(‘/user‘, ‘UserController‘,[‘getShow‘ => ‘user.show‘]);

这样就可以给对应的方法命名了,oh funk 大K真的不喜欢这种方式,也许是没明白这样写的真谛把。

--今天关于控制器就先写这么多吧,具体逻辑实现咱还得学一些新的知识来结合使用,比如middleware啊和request还有blade模板引擎,但都不是很难~

时间: 2024-11-05 18:59:48

Laravel5.1 -控制器(初步了解)的相关文章

关于laravel5.5控制器方法参数依赖注入原理深度解析及问题修复

在laravel5.5中,可以根据控制器方法的参数类型,自动注入一个实例化对象,极大提升了编程的效率,但是相比较与Java的SpringMVC框架,功能还是有所欠缺,使用起来还是不太方便,主要体现在方法参数的注入不完全是按照参数名称进行的,如果改变了传入参数的顺序会导致类型不匹配的错误. 一.控制器方法参数注入步骤设计 1.在/routes/web.php中添加路由 Route::get('/diary/show/{diary}/{page?}','Diary\[email protected]

控制器初步认识

每一个UI界面都对应一个"控制器" 控制器: 1.什么是控制器: 任何继承于UIViewController的类, 都称之为控制器 2.控制器的作用: 管理UI界面(负责管理UI界面的创建和一些事件的处理) 注意: UI界面是可以和它与之对应的控制器进行连线的 我们可以通过连线的方式, 让UI界面上的元素和控制器中的代码产生一定的关系 默认情况下, UI界面中的元素是不能和方法进行关联的 要想关联UI界面中的元素必须将方法的返回值修改为IBAction 补充快捷键: 二分界面 comm

Laravel5框架中模型、控制器、视图设计代码

Laravel5框架中模型.控制器.视图 其实MVC体系结构模式将一个交互式系统分为三个组件.模型包含核心功能和数据.视图向用户显示信息.控制器处理用户输入.视图和控制器共同构成了用户接口.添加路由Route::get('artiles', '[email protected]');创建控制器 php artisan make:controller ArticlesController --plain修改控制器<?php namespace App\Http\Controllers;   use

laravel5.4 后台控制器提示前台显示问题

如果你不用Validator的话,想做一个demo,在控制器中如果执行 成功或者失败跳转到指定页面!今天看文档找到了一个解决这个得简单方法 只需要一段js代码和一个页面提示! 页面提示 backend下的jump.blade.php @extends('common.index') @section('css') @stop @section('javascript')<link rel="stylesheet" href="{{asset('css/web2015.c

Laravel5 控制器

Request 一.取值 1.取值 echo $request->input('name','这是默认值'); 2.取得所有值 $array=$request->all(); 3.判断值是否存在 if ($request->has('name')){ echo $request->input('name','默认值'); }else{ echo '不存在该值'; } 二.判断请求类型 1.直接返回请求类型 echo $request->method(); 2.判断是否为某种请

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

linux 时钟源初步分析linux kernel 时钟框架详细介绍

初步概念: 看datasheet的关于时钟与定时器的部分, FCLK供给cpu, HCLK供给AHB总线设备(存储器控制器,中断控制器.LCD控制器.DMA.USB主机控制器等), PCLK供给APB总线上的设备(watchdog.IIS.i2c. pwm.定时器.ADC.uart.gpio.rtc.spi) 上电时 fclk的时钟等于外部时钟fin, 然后等待LOCKTIME后, 依照MPLLCON寄存器的设置,倍频到高频. UPLLCON专用于USB同于MPLLCON. 关于分频: CLKD

7. Laravel5学习笔记:如何定义自己的视图组件

视图组件 视图组件就是在视图被渲染前,会调用的闭包或类方法.如果你想在每次渲染某些视图时绑定数据,视图组件可以把这样的程序逻辑组织在同一个地方. 对上面的话,理解如下: 这个php代码运行的时间是在渲染视图之前 使用这个组件应该用于每次渲染时,都要绑定数据的视图上.这样子就可以从控制器分离出数据绑定逻辑. 它很好的提现了 单一职责 ,对它的概念阐述 请看这里 使用 在laravel5的文档中已经说明了如何构建自己的视图组件.这里在重复一下. 先构建一个视图组件: <?php namespace

laravel5.1学习1-Model的创建

laravel5.1中可以很方便的用命令行创建Model 1.php artisan make:model Content 接着添加属性 $fillable =array('id','article_id','content','created_at','updated_at'); 这个数组里存储的是content表的字段名 2.创建控制器 php artisan make:controller AdminController 此时提示Controller created successfull