2015-03-18 67 views
0

在Laravel 5中,我注意到無論何時我使用純HTML格式編寫的表單,而不是使用Form::open,它都需要隱藏令牌輸入字段。使用純HTML的Laravel 5更新表格

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>" /> 

而且對於更新記錄的形式,它需要有<input name="_method" type="hidden" value="PATCH">

它是正確的,使用普通的HTML編寫表格時,我應該始終有這些領域?如果我仍然用純HTML編寫它,還有其他的方法嗎?

回答

1

是的,這是正確的。對於PATCH(以及基本上所有非GET或POST動詞),除了使用_method之外沒有別的辦法。

這在文件的路徑章描述:Method Spoofing

但是你禁用CSRF保護。我不是說你應該做的,但如果你願意,你可以在app/Http/Kernel.php

從中間件陣列移除Illuminate\Foundation\Http\Middleware\VerifyCsrfToken禁用它這是在文檔中還有:CSRF Protection

+0

謝謝!我想知道爲什麼這不包含在文檔中?我的意思是,當開發人員不想使用「Form」助手並決定使用純HTML時,這些字段是必需的。還是寫了,我只是錯過了? – basagabi 2015-03-18 21:12:26

+0

是的,它都在文檔中。我添加了鏈接給我回答:) – lukasgeiter 2015-03-18 21:16:03

+0

請注意,這些字段不是每個表單所必需的。這取決於您是否啓用了CSRF保護,並且您是否想要定位與POST或GET不同的方法。 – lukasgeiter 2015-03-18 21:17:37