by Devin Yang

建立於: 8年前 ( 更新: 8年前 )

為何Laravel需要有Form Method Spoofing呢?
因為HTML表單並不支援PUT、PATCH及DELETE等動作,因此在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

如何在host直接執行容器內,不同Project的php artisan.

本篇為D-Laravel的運用教學,如何在主機端直接執行container內的php artisan. 自訂別名後,就能直接在host端的project資料夾內,直接執行contianer內的php artisan了。 alias a="../../artisan.sh"

laravel

Laravel 5.7新功能dump-server。

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

laravel範例,laravel教學,livewire範例,laravel

如何在Laravel Livewire元件設定中文化的錯誤訊息

本文透過簡易的Laravel livewire範例,看看livewire元件如何驗證使用者輸入錯誤,並顯示中文錯誤訊息。