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,livewire

livewire重要笔记

在开始您的 Livewire 之旅之前,以下是关於公开属性(public properities)的三项基本注意事项:一、属性名称不能与为 Livewire 保留的属性名称冲突(例如$rules或$message)二、保存在公开属性(public properities)中的数据,对前端 JavaScript 是可见的。因此,您不应在其中保存敏感数据。三、属性只能是 JavaScript 友好的数据类型(字符串、整数、数组、布尔值),或以下 PHP 类型之一:Stringable、Collection、DateTime、Model、EloquentCollection。

dlaravel

使用docker in docker创建D-Laravel测试环境。

D-Laravel是一个极易使用并且极有弹性的Laravel开发环境,只要您是Mac的使用者,就算不懂Docker也可以透过他来创建Laravel的项目,进行开发,由於最近添加.env的功能新功能时,急者push,却没有完整测试,搞出了一堆新的Bug,所以,这次新建了一个新的dlaravel_test,bash的测试工具,透过doceker in docker的方式来跑测试。确保D-Laravel的每一次释出都能是一个稳定的版本。

laravel

Laravel上的jenkins CI Server pipeline基本运用教程

您想透过docker创建持续集成及交付的CI Server给Laravel使用吗? 在CI Server上运行laravel dusk及phpunit轻松搞定自动化测试,及相关日志。 看完本篇或许您会发现CI/CD有多简单。 我指基本的运用。