はじめに
LaravelにてPUTメソッドを使用したAPIを作成時にFormRequestに値が渡ってこなかったときの対処方法です。
URL的には/{id}/hogehogeのようにしておりコントローラー側でも引数にRequest $requestとint $idを指定しており、URL中のidは取得できるにもかかわらず、$requestにはデータが全く渡ってこなかったです。
対処方法
該当APIがPOSTメソッドでもよければPOSTメソッドに変更して下さい。
もしPUTメソッドを使いたい場合は、リクエストに _method = 'put'を含めてください。
1 2 | const formData = new FormData(); formData.append('_method', 'put'); |
上記はJavascriptの例です。JSONで送るなら{ '_method': 'put' }になりますね。
blade上でformのメソッドはPOSTにしてform内に@method('put')と書くのと同じ理屈見たいです。
以上です。