by Devin Yang

建立于: 7年前 ( 更新: 7年前 )

为何Laravel需要有Form Method Spoofing呢?
因为HTML表单并不支持PUTPATCHDELETE动作,因此在Laravel
在提交HTML表单送出时,我们需要透过一个隐藏的_method输入栏,作为HTTP的请求发送。
这样Laravel的Restful风格路由才可以知道这个请求是PUT还是PATCH...等。

Laravel 5.5版前,表单可使用埋入两个隐藏input栏位:
<form action="/foo/bar" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
或是
<form action="/foo/bar" method="POST">
    {{ method_field('PUT') }}
    {{ csrf_field() }}
</form>
Laravel 5.6版后,我们也可以透过Blade directive达到相同的效果:
<form action="/foo/bar" method="POST">
    @method('PUT')
    @csrf
</form>

 

Tags: laravel

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


dlaravel

D-Laravel 释出 v1.1.5

因应Laravel 5.5推出了,刚好php也出了php 7.0.23及php 7.1.9版了。 D-Laravel使用的fpm版本也进行更新罗...只要调整您的docker-compose所定义的版本 即可使用最新的php罗...

wordpress, d-laravel, docker, docker-compose

如何用D-Laravel安装Wordpress

约8分钟的教程影片,介绍在D-Laravel上安装Wordpress. D-Laravel是一个docker-compose的Laravel框架开发环境,但不代表他不能拿来装别的东西。 这个影片,介绍使用D-Laravel安装非Laravel的PHP项目, 您可以学到D-Laravel上的相关命令用法: ./create --host用法, docker-compose up -d及 ./console mysql用法, D-Laravel v1.0.0版后的数据库连线设置方式。

Laravel, Packages,

什么样的包你必定装在所有你创建的Laravel应用进程上呢?

有什么样的包,你肯定会装在你的Laravel应用进程上呢? 这里有四星的包,几乎大家都会装, 点进来看看,我怎么说,我的实际使用使用心得分享...