by Devin Yang , 4 years ago

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

Login is required to leave comments

Similar Stories


linux

無密碼詢問,產生ssh金鑰對

有時進行自動設定時,需要產生ssh的金鑰對。 命令列無密碼詢問,產生ssh金鑰對。

d-laravel, docker, laravel, docker-compose

D-Laravel v1.0.0 release變更說明

為了讓container可以被更靈活運用,D-Laravel釋出v1.0.0版了,此版本為不向下相容變更。 https://github.com/DevinY/dlaravel/releases/tag/v1.0.0 如果您使用為 v1.0.0 之前,您需修改Laravel專案的.env檔,DB_HOST=127.0.0.1變更為DB_HOST=db 如果您有自訂的docker-compose-custom.yml檔....more