by Devin Yang

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

为何Laravel需要有Form Method Spoofing呢?
因为HTML表单并不支持PUT、PATCH及DELETE等动作,因此在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

需要登入才可留言!

类似文章


laravel

我如何升级后台到Lravel 5.5

我的后台一开始是自己打造的框架,一样采用MVC架构,自己做的数据库连线及环境设置档等,包含自己的样版语法,直到我想要去支持Restful时, 有个想法,别人都写好了我何必自己去重写同样的功能,写出来会比较好吗? 所以开始改用框架, 一开始采用Slim,主要因为他对於php的支持版本较低,但由於的Slim的twig templates没有Laravel的blade template好用...

laravel教學,blade

在我的Laravel的blade上打标签

使用Laravel的Blade Templates相当好用,用久了还满习惯的,但有一点就是当创建了很多的blade时,搞的自己似乎不太好找,在这里提供了我最近的原创作法,如果雷同纯属巧合了。

dlaravel

D-Laravel上的.env.example档说明

本文说明关於D-Laravel上的.env设置 MYSQL_ROOT_PASSWORD=secret LARAVEL_INSTALLER='container' DOCKER_SERVICES='docker-compose.yml service/redis.yml'