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時,也沒有他來的讓我如此驚奇。

laravel

Laravel 5.7新功能dump-server。

Laravel 5.7.x,artisan指令開始支援並整合了Symfony的傾印伺服器(dump-server)囉。 透過artisan指令,啟動dump-server,我們可以將dump的資料顯示在console端。

laravel

加欄位同時更新Laravel

被朋友說,墨菲定律,升級總是那麼不順,當然要升給他看我有多順,沒在怕的。 我還順便加了個欄位。