FormからREST APIを呼び出す画面を作成していたのですが、いまのところおそらく、HTMLのFormからPUT/PATCH/DELETEリクエストを送ることができません。
理由は、なぜ html の form は PUT / DELETE をサポートしないのか?が詳しい。
Laravelでは、以下のように記載することでフォームからのGET/POST以外のリクエストをサポートしています。
Laravel >= 5.6
<form action="/foo/bar" method="POST">
@method('PUT')
</form>
Laravel < 5.5
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PUT">
</form>
試してみます
routes/web.php
Route::any('/', 'IndexController@any');
index.blade.php
<form action="/" method="POST">
@method('PUT')
@csrf
<input type="submit">
</form>
IndexController.php
public function any(Request $request)
{
dd($request->method());
}
結果
PUT
期待通りのうごきになりました。おわり。





