浅谈Laravel POST,PUT,PATCH 路由的区别

经常会混淆HTTP的POST/PUT方法,因为这两个方法似乎都可以用来创建或更新一个资源。

区别是细微但清楚的:

POST方法用来创建一个子资源,如 /api/users,会在users下面创建一个user,如users/1

POST方法不是幂等的,多次执行,将导致多条相同的用户被创建(users/1,users/2 …而这些用户除了自增长id外有着相同的数据,除非你的系统实现了额外的数据唯一性检查)

而PUT方法用来创建一个URI已知的资源,或对已知资源进行完全替换,比如users/1,

因此PUT方法一般会用来更新一个已知资源,除非在创建前,你完全知道自己要创建的对象的URI。

PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行局部更新

GET 获取资源

POST 创建资源

PUT 编辑/更新资源(需提交完整的资源字段)

PATCH 编辑/更新资源(可以提交需要更新的字段)

DELETE 删除资源

OPTIONS 服务器允许哪些请求谓词

这些就是最近比较流行的RestFul模式常用的,另HTML表单只支持POST、GET两种请求方式,PUT、PATCH以及DELETE是Laravel中伪造的HTTP请求方式,需要在表单中添加才能生效,还要配置路由。

以上这篇浅谈Laravel POST,PUT,PATCH 路由的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel 配置路由 api和web定义的路由的区别详解

    1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // \Illumina

  • laravel csrf排除路由,禁止,关闭指定路由的例子

    百度了下,发现别的教程里需要更改文件,实际上很简单,官方提供了接口可以用来设置; laravel的csrf防范是通过app/http/Middleware目录下的中间件VerifyCsrfToken.php来生效的,如下所示在官方的代码 有个属性$except,可以专门用来设置哪些路由不用做csrf验证: <?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken a

  • laravel 解决路由除了根目录其他都404的问题

    环境:ubuntu14.04 apache2 php5.6 laravel5.5 ip/yourprojectname/public 可以正常访问 而ip/yourprojectname/public/api/youractionname 显示404 apache的rewrite模块已经启用 怀疑是public下面的.htaccess不起作用 打开/etc/apache2/apache2.conf修改成如下(None改成All) OK! 问题解决! 以上这篇laravel 解决路由除了根目录其他

  • laravel框架的安装与路由实例分析

    本文实例讲述了laravel框架的安装与路由.分享给大家供大家参考,具体如下: laravel的安装 (1)Windows下的安装 1.准备工作 1.1 搭建PHP环境(wamp或其他环境) 1.2 安装Composer(Composer-Setup.exe) 1.3 配置Composer系统路径,需要将Composer所在目录配置到系统环境变量Path中.Composer对应的composer.bat文件所在目录默认为C:\ProgramData\ComposerSetup\bin. 2.使用

  • laravel5.1框架基础之路由详解

    本文实例讲述了laravel5.1框架基础之路由.分享给大家供大家参考,具体如下: 我在学习Laravel5.1,虽然刚刚开始,认识很浅,但还是需要做做归纳,清晰认识 建议大家到laravel学院学习laravel 1.路由(app/routes.php) 在routes.php中进行路由设置,: 作为访问的统一入口,是控制器的统一调度: 没有配置路由,就没有正确地访问路径: 路由需要自己规定一定的规则,方便自己查看.使用.理解: 2.路由基本类型及使用示例 get Route::get('ar

  • Laravel 之url参数,获取路由参数的例子

    如下所示: echo '<pre>'; var_dump( $request->url() ); // url echo '</pre>'; echo '<pre>'; var_dump( $request->route( 'email' ) ); //获取路由参数 echo '</pre>'; echo '<pre>'; var_dump( $request->method() ); // methed echo '</

  • Laravel框架创建路由的方法详解

    本文实例讲述了Laravel框架创建路由的方法.分享给大家供大家参考,具体如下: 我这里使用的Laravel版本是5.6,路由位置在routes/web.php中,所以我们在这个文件中添加我们想要添加的路由. 1.基础路由 //get请求,结果如下图 Route::get('basic1',function (){ return 'Hello World'; }); //post请求,这里不展示结果图 Route::post('basic2',function (){ return 'Post'

  • Laravel框架路由管理简单示例

    本文实例讲述了Laravel框架路由管理.分享给大家供大家参考,具体如下: 路由中输出视图 Route::get('/', function () { return view('welcome'); }); get路由请求 Route::get('get',function(){ return 'get路由请求'; }); post路由请求 Route::post('post',function(){ return 'post请求'; }); 多路由请求 Route::match(['get',

  • laravel实现前后台路由分离的方法

    当我们把路由写到一个文件中时,路由显得杂乱不堪,不利于维护,这时我们需要将laravel路由进行分离 实现步骤: 1.首先在app/Https/Controlles/文件下建立 Frontend(前端) Backend(后端) API(接口) 文件 2.在app/Https/建立对应的路由文件 3.打开app/Providers/RouteServiceProvider.php 定义各个功能对应的路由文件 代码如下: <?php namespace App\Providers; use Illu

  • 浅谈Laravel POST,PUT,PATCH 路由的区别

    经常会混淆HTTP的POST/PUT方法,因为这两个方法似乎都可以用来创建或更新一个资源. 区别是细微但清楚的: POST方法用来创建一个子资源,如 /api/users,会在users下面创建一个user,如users/1 POST方法不是幂等的,多次执行,将导致多条相同的用户被创建(users/1,users/2 -而这些用户除了自增长id外有着相同的数据,除非你的系统实现了额外的数据唯一性检查) 而PUT方法用来创建一个URI已知的资源,或对已知资源进行完全替换,比如users/1, 因此

  • 浅谈laravel框架与thinkPHP框架的区别

    主要区别:(thinkPHP更适合国人的编码习惯) 1.渲染模版方式的不同: 在Laravel框架里,使用return view()来渲染模版; 而ThinkPHP里则使用了$this->display()的方式渲染模版; 2.在Laravel框架里,由于其考虑到了跨站请求伪造, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound的语法错误; 而TP框架则需要自己手动完成防止跨站攻击的代码;

  • 浅谈Laravel中的三种中间件的作用

    在之前一直简单的认为中间件就是往middleware里添加中间件即可.现在才知道中间件有三种类型,分别为:$middleware $middlewareGroup $routeMiddleware 通过查阅资料,终于明白了这三种类型的作用和不同. 第一种,全局中间件/$middleware: 我们的每一次请求,这里面的每个中间件都会执行. 第二种,路由中间件/$routeMiddleware: 定义在该属性内的中间件,只能在定义路由的时候引用. 假设这是我们定义的路由中间件: protected

  • 浅谈Laravel中如何对大文件进行加密

    我已经搜索过用于解决此问题的软件包或解决方案,并遇到了这个 Stack Overflow 回答和这个 PHP 解决方案,该解决方案基本上是 Stack Overflow 所描述的解决方案的 PHP 实现. 我决定创建一个为 Laravel 设计的扩展包,使用简单,优雅的语法提供简单的文件加密 / 解密功能. 在这个教程中,我会详细描述加密大文件需要的所有步骤. 首先, 使用 Laravel 安装器创建一个新的 Laravel 项目, 命名为security-app: laravel new se

  • 浅谈Laravel模板实体转义带来的坑

    问题 最近在Laravel项目中用到了百度编辑器,插入到数据库我保存的是原始的html标签代码,没有进行实体转义.然后在修改的时候,需要读取到数据库中的数据,进行回显,这时候竟然在编辑器里面显示html标签代码<p>123</p>,这让我很尴尬,因为以前在tp框架中也是这样写的,但是没有问题. 搜索之路 在知道问题之后,我就开始找百度了,因为一开始的时候我并不知道是框架的原因,我以为是百度编辑器版本的原因,然后收到了许多答案,都是围绕着htmlentities和html_entit

  • 浅谈laravel数据库查询返回的数据形式

    版本:laravel5.4+ 问题描述:laravel数据库查询返回的数据不是单纯的数组形式,而是数组与类似stdClass Object这种对象的结合体,即使在查询构造器中调用了toArray(),也无法转换成单纯的数组形式. 问题解析: (以上图片来源于laravel学院5.3版本到5.4版本的升级手册) 如上图所示:Laravel不再支持在配置文件中定制PDO的"fetch mode",取而代之,总是使用PDO::FETCH_OBJ,如果你仍然想要为应用定制fetch模式,需要监

  • 浅谈laravel框架sql中groupBy之后排序的问题

    最近在用框架给公司App写接口时,碰到了一个棘手的问题: 对查询结果进行排序并进行分页(进行了简略修改),下面是最终结果代码: $example = Example::select(DB::raw('max(id) as some_id,this_id')) ->where('id', $id) ->groupBy('this_id') ->orderBy('some_id', 'desc') ->skip($offset) ->take($limit) ->get()

  • 浅谈laravel中的关联查询with的问题

    表结构 主表结构: Create Table CREATE TABLE `user` ( `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varbinary(255) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=114001 DEFA

  • 浅谈laravel 5.6 安装 windows上使用composer的安装过程

    在介绍下面的时候,先看一下 laravel 5.6 的环境要求 所以大家的php版本一定不要小于 7.1.3 ,我本地使用的是wamp 3.1.0 64位, php可以选择 7.1.9 一.下载compser 由于一些电脑直接下载composer.exe安装时会有很多问题,所以建议使用命令行安装,我在 E盘 下面建了个composer文件夹 ,打开cmd,进入 这个composer文件夹 1.执行以下命令: php -r "copy('https://getcomposer.org/instal

  • 浅谈laravel aliases别名的原理

    在laravel发现有些类可以直接use 类名,就能使用了,例如use DB;就可以使用DB类了,问题是DB这个类并不在根命名空间,这里面实际就是用到了别名. 先通过如下例子来分析基本原理 建立如下文件upload.php,内容为 <?php namespace test\test2; class upload{ public function test(){ return 123; } } 2 建立文件index.php,内容为 <?php namespace b; require('upl

随机推荐