一切福田,不離方寸,從心而覓,感無不通。

HTTP控制器实例教程 —— 创建RESTFul风格控制器实现文章增删改查

基本控制器及控制器路由、控制器中间件都比较简单,这里不再赘述,相关文档参考HTTP 控制器文档一节。

1、创建RESTFul风格控制器

注:关于什么是RESTFul风格及其规范可参考这篇文章:理解RESTful架构

本文我们主要讨论创建一个RESTFul风格的控制器用于对博客文章进行增删改查,创建这样的控制器很简单,在应用根目录运行如下Artisan命令即可:

该命令会在app/Http/Controllers目录下生成一个PostController.php文件,该控制器内容如下:

2、为RESTFul风格控制器注册路由

接下来我们在routes.php文件中为该控制器注册路由:

该路由包含了指向多个动作的子路由:

方法 路径 动作 路由名称
GET /post index post.index
GET /post/create create post.create
POST /post store post.store
GET /post/{post} show post.show
GET /post/{post}/edit edit post.edit
PUT/PATCH /post/{post} update post.update
DELETE /post/{post} destroy post.destroy

比如我们在浏览器中以GET方式访问http://laravel.app:8000/post,则访问的是PostControllerindex方法,我们可以通过route('post.index')生成对应路由URL。类似的,如果我们以POST方式访问http://laravel.app:8000/post,则访问的是PostControllerstore方法,对应的POST表单action属性值则可以通过route('post.store')来生成。

3、实例教程——文章增删改查

接下来我们演示基本的增删改查操作,关于数据库的操作我们后面再讲,这里我们使用缓存作为存储器(Laravel默认使用文件缓存)。

注意:我们这里用到了Cache门面,使用前不要忘了在PostController顶部使用use Cache;引入。关于Cache的用法,可参考缓存文档

3.1 新增文章

首先我们新增一篇文章,定义PostController控制器的create方法和store方法如下(视图部门我们放到后面讲,这里就将HTML放到PHP变量里):

3.2 查看文章

访问http://laravel.app:8000/post/create页面,填写表单,点击“提交”,保存成功后,页面跳转到详情页:

3.3 编辑文章

同理我们定义编辑文章对应的edit方法和update方法如下:

3.4 删除文章

我们还可以使用destroy方法删除文章:

要删除文章,需要参考编辑表单伪造删除表单方法为DELETE(一般使用AJAX删除),这里不再演示。

3.5 文章列表

最后我们再来定义一个用于显示所有文章列表的index方法: