网站PHP框架之Laravel5.5(六)resource controller资源控制器

14 篇文章 0 订阅

网站PHP框架之Laravel5.5(五)Controller控制器这篇文章中介绍了控制器的基本用法,非常便利。

但是一个项目中肯定会存在必不可少的CURD增删改查的逻辑,如果每一项功能都用一种HTTP请求的话,路由文件将会很难看。

Laravel针对这一块特地做了资源控制器。

在项目跟目录输入命令:

php artisan make:controller UserController --resource

创建名为UserController的控制器,控制器类型为资源控制器。

这时候我们可以看到:

UserController.php文件就为一个资源控制器文件,我们打开可以看到代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index()
    {
        //
    }

    public function create()
    {
        //
    }

    public function store(Request $request)
    {
        //
    }

    public function show($id)
    {
        //
    }

    public function edit($id)
    {
        //
    }

    public function update(Request $request, $id)
    {
        //
    }

    public function destroy($id)
    {
        //
    }
}

可以看出创建的资源控制器默认给我们了7个方法,我们稍加修改:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index()
    {
        return '所有用户列表';
    }

    public function create()
    {
        return '创建新用户的表单';
    }

    public function store(Request $request)
    {
        return '保存一个新的用户的逻辑';
    }

    public function show($id)
    {
        return '用户的ID是'.$id;
    }

    public function edit($id)
    {
        return '修改用户信息的表单';
    }

    public function update(Request $request, $id)
    {
        return '修改用户信息的逻辑';
    }

    public function destroy($id)
    {
        return '删除用户成功';
    }
}

但是这样还没有完成哦,因为这是把控制器做好了,我们现在回到web.php文件,添加:

Route::resource('users','UserController');

就这样一行简单的路由代码,我们就成功的搞定了一系列的路由,毕竟路由都把责任推给了控制器了。

 我们可以用:

php artisan route:list

查看项目路由列表:

+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
| Domain | Method    | URI               | Name          | Action                                      | Middleware   |
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+
|        | GET|HEAD  | /                 |               | App\Http\Controllers\SiteController@index   | web          |
|        | GET|HEAD  | about             |               | App\Http\Controllers\SiteController@about   | web          |
|        | GET|HEAD  | api/user          |               | Closure                                     | api,auth:api |
|        | GET|HEAD  | users             | users.index   | App\Http\Controllers\UserController@index   | web          |
|        | POST      | users             | users.store   | App\Http\Controllers\UserController@store   | web          |
|        | GET|HEAD  | users/create      | users.create  | App\Http\Controllers\UserController@create  | web          |
|        | GET|HEAD  | users/{user}      | users.show    | App\Http\Controllers\UserController@show    | web          |
|        | PUT|PATCH | users/{user}      | users.update  | App\Http\Controllers\UserController@update  | web          |
|        | DELETE    | users/{user}      | users.destroy | App\Http\Controllers\UserController@destroy | web          |
|        | GET|HEAD  | users/{user}/edit | users.edit    | App\Http\Controllers\UserController@edit    | web          |
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+

现在我们就可以用Postman去测试连接:

接下来大家自行测试吧。

值得一提的是有些请求可能会出现419状态码,这是由于Laravel默认开启CSRF token安全验证。

这个问题解决方法就在app/Http/Middleware/VerifyCsrfToken.php这个文件里,

我们把protected $except = [ ]里面填上'*'。

protected $except = [
        '*'
    ];

 

 

系列文章:

网站PHP框架之Laravel系列文章

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值