控制器 - Controllers

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

我们可以把相关的路由,使用一种叫 Controller ,控制器 的东西组织在一起。在控制器里面,可以定义一些方法,然后用这些方法里去处理路由的逻辑。这样做可以让应用的路由的结构更清晰 ... 更容易维护,也可以使用架构提供的一些其它的高级功能。

一个控制器,其实就是一个 class 。 先打开 app 目录下面的 routes.php ...

在这之前的视频里,我们在这个文件里创建了一些路由 ... 用 Get 方法请求 movie 地址,还有用 Post 方法请求 movie 地址,还有用 Get 方法请求 movie 斜线加上电影的 id 这样的地址的路由。

在这些路由里,我们把处理这些请求的逻辑放在了对应方法的第二个参数里面 ... 因为这些路由都是跟 movie 相关的 ... 所以,我们就可以去创建一个叫 movie 的控制器 ... 在这个控制器里,去定义一些方法,去处理这些路由。

控制器,一般会放在 app 目录下面的 controllers 这个目录里面。 这个目录里面,已经包含了两个控制器 ... 一个是 BaseController ... 我们自己创建的控制器,都要去继承这个控制器。

还有一个 HomeController.php ... 这是一个演示用的控制器 ... 你可以基于这个文件里面的内容,去创建自己的控制器 ...

创建控制器

新建一个文件 ... 命名为 MovieController.php .... 控制器的名称 ... 再加上 Controller ... 打开这个文件 ... 在这里,我们要定义一个类 ... 这个类的名字就是控制器的名字 ..

我们自己创建的控制器类,都要去继承 BaseController ... 也就是在 BaseController.php 里面定义的类 ... 在这个类里,可以去添加一些所有控制器都需要的东西。

继承其它的类用的是 extends ... 然后是要继承的类的名称 ... BaseController ...

<?php

class MovieController extends BaseController {}

在这个类里面,去定义一些方法 ... 用这些方法去处理路由 ...

public ... function ... movieIndex ... 这个方法就是把请求指向 movie 目录下面的 index.blade.php 或者 index.php 这个视图文件 ...

public function movieIndex() {
return View::make('movie.index');
}

在路由里面,使用这个控制器里的这个方法 ... 需要再去编辑一下 routes.php ... 打开这个文件 ... 比如我们要在 get movie 这个地址的路由上使用刚才定义的方法 ...

去掉这里的 function 参数 ... 然后去指定一个控制器类的方法 ... 首先是控制器的名称 ... 后面是这个控制器类里的方法 ... 中间用一个 @ 符号 ...

Route::get('movie', 'MovieController@movieIndex');

这个路由的意思就是,如果有用 get 方法请求 movie 这个地址 ... 把这个请求交给 MovieController 这个控制器里面的 movieIndex 方法去处理 ...

在这个方法里面,会把请求指向一个视图文件 ... 也就是在 views 目录下面的 movie 目录里面的 index.blade.php 这个文件 ...

打开这个文件再看一下 ...

先清理一下 ... 留下 @extends('movie.layout.master') 这行 ... 然后在 content 这个区块里面,只是简单返回一个 电影列表 这几个字 ...

然后去掉其它的东西 ... 再去编辑一个这个视图文件使用的布局 ... movie 目录下面的 layout 里面的 master.blade.php ...

清理一下 ... 主体内容只留下这行 @yield 代码 ...

下面,我们再到浏览器上预览一下 ...

打开 movie 这个地址 ... 在页面上会显示 电影列表 ...

使用刚才介绍的方法,我们可以继续在 MovieController 这个控制器里,去定义其它的方法来处理其它的路由 ...

控制器 - Controllers《 Laravel 4 基础 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点