阅读(662) (10)

Laravel 8 表单方法伪造

2021-06-23 11:57:23 更新

HTML 表单不支持 PUTPATCHDELETE 请求。所以当 HTML 表单调用请求方式为 PUTPATCHDELET 的路由时,您需要在表单中添加一个 _method 的隐藏域。_method 的值将会作为 HTTP 请求的方法。

<form action="/foo/bar" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

您也可以使用 @method Blade 指定生成 _method 隐藏域:

<form action="/foo/bar" method="POST">
    @method('PUT')
    @csrf
</form>