by Devin Yang

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

为何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

需要登入才可留言!

类似文章


docker,laravel,nfs

Docker在macOS上的NFS

D-laravel的nfs模式,在这篇文章您可以了解到,如何在macOS使用NFS+Docker。

d-laravel, docker, docker-compose, laravel

D-Laravel释出v0.9.1版了

为了让D-Laravel保持在一个可运作的版本及稳定的本。 开始使用Tag标注该版本通过测试那些测试.. 这个版本已通过ubuntu实及macos实机测试,可顺利创建Container及运行哦..

laravel,laravel livewire

Laravel livewire文件上传展示

Livewire是一个给Laravel框架使用的全端框架。我第一次写code,能写到边写边赞叹神奇大概就是他了,我同事被我推坑后也是边写边赞叹。以前初学Vue时,也没有他来的让我如此惊奇。