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

需要登入才可留言!

类似文章


laravel storage,sftp

用tinker测试Laravel的sftp自定义Storage::path及Storage::url

今天来测测Laravel上使用sftp driver,如果您没用过,快来看看我测试的结果顺便提一下,我们在Laravel的tinker环境中,进行Storage的功能很是方便的,不管是local或是远程。调整完设置后,记得离开再进入。

dlaravel

D-Laravel特定服务重启

一般情况下,我们使用./console restart重建并且运行contaiener。 有时,我们有多个服务,并不想要一次重启所有的服务, 这时,可以使用./console restart [servce name]来重启特定服务..

Laravel,artisan

关於Laravel的artisan中的--env的操作

本文采用Lravel 9.40.1进行操作我相信很多人都知道了--env的用法,但我还是提供一下信息给Laravel的初学者。在artisan的命令中,我们能透过--env来指定使用不同的.env档,这样在不同的子域名下,我就能用不同的环境甚至是不同的数据库。大家应该也有注意到,本站采用的是多语的环境,写两套吗?当然没有,基本上我建了多个.env在同一个Project中。