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 build自己专用的php fpm image。

D-Laravel已提供了Build好的php image,如果需要自己调整及Build自己专用的Image相当简单。 一、首先在D-Laravel的录中,进入dockerfiles/fpm,选择您要Build的PHP版本,例如7.2。 命令如下...

d-laravel,docker

D-Laravel v1.2.1版变更说明(建议更新,必免踩雷)

D-Laravel v1.2.1版修正说明 use GuzzleHttp\Client; 进行post时.出现访问被拒的问题。 如果您是由旧版升级,您可能需调整etc/default-ssl.conf的设置档 (如果有该档) 请调整php:9000变更为web:9000,你可以透过运行一次./console secure调整。 docker-compose设置档部份,PHP-FPM container变更为network_mode: "service:web"...

laravel-storage,sftp

用Laravel的Storage SFTP Drvier进行远程文件上传

为何我把网站的搞前后台分离,我的想法很简单,就是靠一套后台管控所有前台的网站数据。假设前台的网站为单纯的行销网站,那不外乎主题内容,就是上上文章那种,没有什么特别复杂的逻辑。所以后台的数据库设记好连不同的前台就好了,那还剩最后一个问题,我的后台HTML编辑器如何贴图直接贴文到前台呢?Laravel的Storage SFT Driver就是很好的解药。