laravel资源控制器

Laravel 的资源控制器可以让我们很便捷地构建基于资源的 RESTful 控制器。

1. 创建资源控制器

资源控制器创建命令:

php artisan make:controller UserController --resource

查看创建好的资源控制器

<?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 '删除用户成功';
    }
}

2. 注册资源路由

在routes目录下的路由文件中添加:

//创建单个资源路由
Route::resource('users','UserController');
//创建多个资源路由
Route::resources([
    'users' => 'UserController',
    'member' => 'MemberController'
]);

查询注册路由

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          |
+--------+-----------+-------------------+---------------+---------------------------------------------+--------------+

资源控制器处理动作

动词URL方法路由名称作用
GET/userindexuser.index查询所有资源
GET/user/createcreateuser.create显示创建资源的界面
GET/user/{id}showuser.show显示指定id的资源
POST/userstoreuser.store创建资源
GET/{id}/editedituser.edit根据id显示对应编辑资源的页面
PUT/PATCH/user/{id}updateuser.update根据id编辑对应的资源
DELETE/user/{id}destroyuser.destroy根据id删除对应资源

3. 伪造表单方法

由于 HTML 表单不能发起PUT、PATCH和DELETE请求,需要添加一个隐藏的 _method 字段来伪造 HTTP 请求方式,辅助函数 method_field 可以帮我们做这件事:

{{ method_field('PUT') }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值