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

Laravel livewire檔案上傳展示

Livewire是一個給Laravel框架使用的全端框架。我第一次寫code,能寫到邊寫邊讚嘆神奇大概就是他了,我同事被我推坑後也是邊寫邊讚嘆。以前初學Vue時,也沒有他來的讓我如此驚奇。

d-laravel, docker, docker-compose, laravel

D-Laravel釋出v0.9.1版了

為了讓D-Laravel保持在一個可運作的版本及穩定的本。 開始使用Tag標註該版本通過測試那些測試.. 這個版本已通過ubuntu實及macos實機測試,可順利建立Container及執行哦..

laravel,dotenv,seo

我如何依子域名動態載入Laravel不同的dotenv檔

開始前先來抱怨一下,本來我的網站可以依使用者的瀏覽器自動顯示不同的語系的。這有何不可,但Google的SEO似乎不喜歡這麼搞,他建議每種語言使用不同的網址,不要用cookie或瀏覽器設定來調整網頁內容,好吧那我只能乖乖就範了。他的建議作法,第一種方案:依國家區分,像是example.tw或example.de這真的天方夜譚怎麼可能,要嘛收購被註冊的域名,要不然取個全球沒人會取的怪域名還比較有機會。第二種方案:用子域名區分,這正式我準備要做的,等等來說明在Laravel中怎麼弄。第三種方案:example.com/tw/ 之類的,Apple好像就這麼弄的。第四種方案:site.com?loc=tw之類,不建議使用,確實我也覺的這個不是一個好主意。