前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel中resource详解(引用自官方文档)

Laravel中resource详解(引用自官方文档)

作者头像
咪啪咪啪
发布2019-11-15 20:50:39
2K0
发布2019-11-15 20:50:39
举报
文章被收录于专栏:PHP-咪啪咪啪PHP-咪啪咪啪

Laravel 遵从 RESTful 架构的设计原则,将数据看做一个资源,由 URI 来指定资源。对资源进行的获取、创建、修改和删除操作,分别对应 HTTP 协议提供的 GET、POST、PATCH 和 DELETE 方法。当我们要查看一个 id 为 1 的用户时,需要向 /users/1 地址发送一个 GET 请求,当 Laravel 的路由接收到该请求时,默认会把该请求传给控制器的 show 方法进行处理。

Laravel 为我们提供了 resource 方法来定义用户资源路由。

routes/web.php

代码语言:javascript
复制
<?php

Route::get('/', 'StaticPagesController@home')->name('home');
Route::get('/help', 'StaticPagesController@help')->name('help');
Route::get('/about', 'StaticPagesController@about')->name('about');

Route::get('signup', 'UsersController@create')->name('signup');
Route::resource('users', 'UsersController');

新增的 resource 方法将遵从 RESTful 架构为用户资源生成路由。该方法接收两个参数,第一个参数为资源名称,第二个参数为控制器名称。

代码语言:javascript
复制
Route::resource('users', 'UsersController');

上面代码将等同于:

代码语言:javascript
复制
Route::get('/users', 'UsersController@index')->name('users.index');
Route::get('/users/{user}', 'UsersController@show')->name('users.show');
Route::get('/users/create', 'UsersController@create')->name('users.create');
Route::post('/users', 'UsersController@store')->name('users.store');
Route::get('/users/{user}/edit', 'UsersController@edit')->name('users.edit');
Route::patch('/users/{user}', 'UsersController@update')->name('users.update');
Route::delete('/users/{user}', 'UsersController@destroy')->name('users.destroy');

可以看到使用 resource 方法让我们少写了很多代码,且严格按照了 RESTful 架构对路由进行设计。

生成的资源路由列表信息如下所示:

HTTP 请求

URL

动作

作用

GET

/users

UsersController@index

显示所有用户列表的页面

GET

/users/{user}

UsersController@show

显示用户个人信息的页面

GET

/users/create

UsersController@create

创建用户的页面

POST

/users

UsersController@store

创建用户

GET

/users/{user}/edit

UsersController@edit

编辑用户个人资料的页面

PATCH

/users/{user}

UsersController@update

更新用户

DELETE

/users/{user}

UsersController@destroy

删除用户

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档